Page 1 of 1

LTE-Cell-Scanner on MacOS

Posted: Wed Aug 02, 2017 7:24 pm
by txjacob
Has anyone been able to get LTE-Cell-Scanner to work on Mac OS? I've been trying to compile it on my computer, but I get the following error when running make:

Code: Select all

[100%] Linking CXX executable LTE-Tracker
Undefined symbols for architecture x86_64:
  "itpp::DSFMT<19937, 117, 19, 4498102069230399ull, 4501400546508797ull, 1047295u, 4294966079u, 1048063u, 4237361149u, 10376655713290109737ull, 4291106551315987578ull, 4432916062321256576ull, 1ull>::initialized", referenced from:
      kalibrate(double&, double&, double const&, double const&, double&, bool const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool const&, double const&, double const&, bool const&, rtlsdr_dev_t*&, hackrf_device*&, bladerf*&, dev_type_t::dev_type_t const&, double&, bool const&, double&, char const*, char const*, unsigned short const&, unsigned short const&, unsigned short const&, unsigned short const&, unsigned short const&) in LTE-Tracker.cpp.o
      _main in LTE-Tracker.cpp.o
  "itpp::DSFMT<19937, 117, 19, 4498102069230399ull, 4501400546508797ull, 1047295u, 4294966079u, 1048063u, 4237361149u, 10376655713290109737ull, 4291106551315987578ull, 4432916062321256576ull, 1ull>::sse2_param_mask", referenced from:
      kalibrate(double&, double&, double const&, double const&, double&, bool const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool const&, double const&, double const&, bool const&, rtlsdr_dev_t*&, hackrf_device*&, bladerf*&, dev_type_t::dev_type_t const&, double&, bool const&, double&, char const*, char const*, unsigned short const&, unsigned short const&, unsigned short const&, unsigned short const&, unsigned short const&) in LTE-Tracker.cpp.o
      _main in LTE-Tracker.cpp.o
  "itpp::DSFMT<19937, 117, 19, 4498102069230399ull, 4501400546508797ull, 1047295u, 4294966079u, 1048063u, 4237361149u, 10376655713290109737ull, 4291106551315987578ull, 4432916062321256576ull, 1ull>::idx", referenced from:
      kalibrate(double&, double&, double const&, double const&, double&, bool const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool const&, double const&, double const&, bool const&, rtlsdr_dev_t*&, hackrf_device*&, bladerf*&, dev_type_t::dev_type_t const&, double&, bool const&, double&, char const*, char const*, unsigned short const&, unsigned short const&, unsigned short const&, unsigned short const&, unsigned short const&) in LTE-Tracker.cpp.o
      _main in LTE-Tracker.cpp.o
  "itpp::DSFMT<19937, 117, 19, 4498102069230399ull, 4501400546508797ull, 1047295u, 4294966079u, 1048063u, 4237361149u, 10376655713290109737ull, 4291106551315987578ull, 4432916062321256576ull, 1ull>::status", referenced from:
      kalibrate(double&, double&, double const&, double const&, double&, bool const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool const&, double const&, double const&, bool const&, rtlsdr_dev_t*&, hackrf_device*&, bladerf*&, dev_type_t::dev_type_t const&, double&, bool const&, double&, char const*, char const*, unsigned short const&, unsigned short const&, unsigned short const&, unsigned short const&, unsigned short const&) in LTE-Tracker.cpp.o
      _main in LTE-Tracker.cpp.o
  "itpp::DSFMT<19937, 117, 19, 4498102069230399ull, 4501400546508797ull, 1047295u, 4294966079u, 1048063u, 4237361149u, 10376655713290109737ull, 4291106551315987578ull, 4432916062321256576ull, 1ull>::bigendian", referenced from:
      kalibrate(double&, double&, double const&, double const&, double&, bool const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool const&, double const&, double const&, bool const&, rtlsdr_dev_t*&, hackrf_device*&, bladerf*&, dev_type_t::dev_type_t const&, double&, bool const&, double&, char const*, char const*, unsigned short const&, unsigned short const&, unsigned short const&, unsigned short const&, unsigned short const&) in LTE-Tracker.cpp.o
      _main in LTE-Tracker.cpp.o
  "itpp::DSFMT<19937, 117, 19, 4498102069230399ull, 4501400546508797ull, 1047295u, 4294966079u, 1048063u, 4237361149u, 10376655713290109737ull, 4291106551315987578ull, 4432916062321256576ull, 1ull>::last_seed", referenced from:
      kalibrate(double&, double&, double const&, double const&, double&, bool const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool const&, double const&, double const&, bool const&, rtlsdr_dev_t*&, hackrf_device*&, bladerf*&, dev_type_t::dev_type_t const&, double&, bool const&, double&, char const*, char const*, unsigned short const&, unsigned short const&, unsigned short const&, unsigned short const&, unsigned short const&) in LTE-Tracker.cpp.o
      _main in LTE-Tracker.cpp.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [src/LTE-Tracker] Error 1
make[1]: *** [src/CMakeFiles/LTE-Tracker.dir/all] Error 2
make: *** [all] Error 2

Re: LTE-Cell-Scanner on MacOS

Posted: Wed Aug 02, 2017 8:50 pm
by txjacob
So building itpp from source doesn't work as it results in the error above. For some reason I could not get cmake to see my itpp install at /opt/local/. Therefore I went through and manually edited the cmake generated files to point the compiler at that directory. After doing that the program built correctly, and runs correctly.

Re: LTE-Cell-Scanner on MacOS

Posted: Fri Aug 11, 2017 12:31 pm
by bglod
I seem to recall having to edit one or more of the cmake/Modules/Find*.cmake files as well. Glad to hear you figured it out.

Re: LTE-Cell-Scanner on MacOS

Posted: Thu Sep 07, 2017 7:50 am
by bglod
To modify the source and submit pull requests for eventual incorporation into their master, yes, you will need a GitHub account. However, if you just want to grab the code and make local changes, you do not need a GitHub account.

Re: LTE-Cell-Scanner on MacOS

Posted: Tue Oct 10, 2017 4:37 pm
by mgp25
Hello bglod,

im facing the same issues txjacob explained in the very first post. Nevertheless, im not able to find a solution to it. I have read that both of you achieved it by editing some files. Could it be possible for you to give more details about the procedure, which files to edit and so?

Thanks!

Regards

Re: LTE-Cell-Scanner on MacOS

Posted: Thu Oct 12, 2017 4:44 pm
by bglod
If CMake is complaining, take a look at:

Code: Select all

cmake/Modules/FindITPP.cmake
There are 3 search paths:
  • FIND_PATH(ITPP_DIR ...
  • FIND_LIBRARY(ITPP_LIBRARY_NORMAL ...
  • FIND_LIBRARY(ITPP_LIBRARY_DEBUG ...
If your ITPP is not installed in any of the paths already listed, add your path. That should let cmake find ITPP and proceed with the build.

If, during the build, you get linker errors as described by txjacob, you can do one of two things:

Option 1 (easiest):
Add the path to libitpp.so to your LIBRARY_PATH environment variable

Code: Select all

export LIBRARY_PATH=/path/to/itpp/lib:${LIBRARY_PATH}
Option 2 (slightly more involved, less automated):
After running cmake, modify the following files to replace all instances of "-litpp" with "/absolute/path/to/libitpp.so"

I'm sure there is a more appropriate solution to this that involves modifying the CMakeLists.txt (e.g. link_directories("${ITPP_LIBRARY}")), but I was unsuccessful at this time. I'd have to do more research into it. But for now, the above options should work well enough. :)

Re: LTE-Cell-Scanner on MacOS

Posted: Thu Oct 12, 2017 5:25 pm
by mgp25
Thanks for your response,

Yes i have itpp installed via brew:

Code: Select all

mgp25$ brew info itpp
itpp: stable 4.3.1 (bottled), HEAD
Library of math, signal, and communication classes and functions
https://itpp.sourceforge.io
/usr/local/Cellar/itpp/4.3.1 (144 files, 4.8MB) *
  Poured from bottle on 2016-10-10 at 10:56:25
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/itpp.rb
==> Dependencies
Build: cmake ✔
Recommended: fftw ✔
==> Options
--without-fftw
	Build without fftw support
--HEAD
	Install HEAD version
And there is no libitpp.so:

Code: Select all

lib mgp25$ ls
libitpp.8.2.1.dylib	libitpp.dylib
libitpp.8.dylib		pkgconfig
Anyway i did:

Code: Select all

build mgp25$ export LIBRARY_PATH=/usr/local/Cellar/itpp/4.3.1/lib:${LIBRARY_PATH}
build mgp25$ make
[ 72%] Built target LTE_MISC
[ 72%] Built target CellSearch
[ 72%] Linking CXX executable LTE-Tracker
Undefined symbols for architecture x86_64:
Am i doing something incorrectly?

Thanks again!

Regards

Re: LTE-Cell-Scanner on MacOS

Posted: Fri Oct 13, 2017 9:03 am
by bglod
Can you list the symbols it can't find?

Re: LTE-Cell-Scanner on MacOS

Posted: Fri Oct 13, 2017 10:09 am
by mgp25
Sure.

Code: Select all

build mgp25$ make
[ 72%] Built target LTE_MISC
[ 72%] Built target CellSearch
[ 72%] Linking CXX executable LTE-Tracker
Undefined symbols for architecture x86_64:
  "itpp::DSFMT<19937, 117, 19, 4498102069230399ull, 4501400546508797ull, 1047295u, 4294966079u, 1048063u, 4237361149u, 10376655713290109737ull, 4291106551315987578ull, 4432916062321256576ull, 1ull>::initialized", referenced from:
      kalibrate(double&, double&, double const&, double const&, double&, bool const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool const&, double const&, double const&, bool const&, rtlsdr_dev_t*&, hackrf_device*&, bladerf*&, dev_type_t::dev_type_t const&, double&, bool const&, double&, char const*, char const*, unsigned short const&, unsigned short const&, unsigned short const&, unsigned short const&, unsigned short const&) in LTE-Tracker.cpp.o
      _main in LTE-Tracker.cpp.o
  "itpp::DSFMT<19937, 117, 19, 4498102069230399ull, 4501400546508797ull, 1047295u, 4294966079u, 1048063u, 4237361149u, 10376655713290109737ull, 4291106551315987578ull, 4432916062321256576ull, 1ull>::sse2_param_mask", referenced from:
      kalibrate(double&, double&, double const&, double const&, double&, bool const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool const&, double const&, double const&, bool const&, rtlsdr_dev_t*&, hackrf_device*&, bladerf*&, dev_type_t::dev_type_t const&, double&, bool const&, double&, char const*, char const*, unsigned short const&, unsigned short const&, unsigned short const&, unsigned short const&, unsigned short const&) in LTE-Tracker.cpp.o
      _main in LTE-Tracker.cpp.o
  "itpp::DSFMT<19937, 117, 19, 4498102069230399ull, 4501400546508797ull, 1047295u, 4294966079u, 1048063u, 4237361149u, 10376655713290109737ull, 4291106551315987578ull, 4432916062321256576ull, 1ull>::idx", referenced from:
      kalibrate(double&, double&, double const&, double const&, double&, bool const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool const&, double const&, double const&, bool const&, rtlsdr_dev_t*&, hackrf_device*&, bladerf*&, dev_type_t::dev_type_t const&, double&, bool const&, double&, char const*, char const*, unsigned short const&, unsigned short const&, unsigned short const&, unsigned short const&, unsigned short const&) in LTE-Tracker.cpp.o
      _main in LTE-Tracker.cpp.o
  "itpp::DSFMT<19937, 117, 19, 4498102069230399ull, 4501400546508797ull, 1047295u, 4294966079u, 1048063u, 4237361149u, 10376655713290109737ull, 4291106551315987578ull, 4432916062321256576ull, 1ull>::status", referenced from:
      kalibrate(double&, double&, double const&, double const&, double&, bool const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool const&, double const&, double const&, bool const&, rtlsdr_dev_t*&, hackrf_device*&, bladerf*&, dev_type_t::dev_type_t const&, double&, bool const&, double&, char const*, char const*, unsigned short const&, unsigned short const&, unsigned short const&, unsigned short const&, unsigned short const&) in LTE-Tracker.cpp.o
      _main in LTE-Tracker.cpp.o
  "itpp::DSFMT<19937, 117, 19, 4498102069230399ull, 4501400546508797ull, 1047295u, 4294966079u, 1048063u, 4237361149u, 10376655713290109737ull, 4291106551315987578ull, 4432916062321256576ull, 1ull>::bigendian", referenced from:
      kalibrate(double&, double&, double const&, double const&, double&, bool const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool const&, double const&, double const&, bool const&, rtlsdr_dev_t*&, hackrf_device*&, bladerf*&, dev_type_t::dev_type_t const&, double&, bool const&, double&, char const*, char const*, unsigned short const&, unsigned short const&, unsigned short const&, unsigned short const&, unsigned short const&) in LTE-Tracker.cpp.o
      _main in LTE-Tracker.cpp.o
  "itpp::DSFMT<19937, 117, 19, 4498102069230399ull, 4501400546508797ull, 1047295u, 4294966079u, 1048063u, 4237361149u, 10376655713290109737ull, 4291106551315987578ull, 4432916062321256576ull, 1ull>::last_seed", referenced from:
      kalibrate(double&, double&, double const&, double const&, double&, bool const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool const&, double const&, double const&, bool const&, rtlsdr_dev_t*&, hackrf_device*&, bladerf*&, dev_type_t::dev_type_t const&, double&, bool const&, double&, char const*, char const*, unsigned short const&, unsigned short const&, unsigned short const&, unsigned short const&, unsigned short const&) in LTE-Tracker.cpp.o
      _main in LTE-Tracker.cpp.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [src/LTE-Tracker] Error 1
make[1]: *** [src/CMakeFiles/LTE-Tracker.dir/all] Error 2
make: *** [all] Error 2