Beckhoff / ADS

Beckhoff protocol to communicate with TwinCAT devices.
MIT License
491 stars 193 forks source link

CMake build failing #221

Closed aminagojak closed 5 months ago

aminagojak commented 6 months ago

Building the project (on a linux machine) with

cmake  -S . -B build && cmake --build build

results in the following output

[  3%] Building CXX object AdsLib/CMakeFiles/ads.dir/AdsDef.cpp.o
[  7%] Building CXX object AdsLib/CMakeFiles/ads.dir/AdsDevice.cpp.o
[ 11%] Building CXX object AdsLib/CMakeFiles/ads.dir/AdsFile.cpp.o
[ 15%] Building CXX object AdsLib/CMakeFiles/ads.dir/AdsLib.cpp.o
[ 19%] Building CXX object AdsLib/CMakeFiles/ads.dir/Frame.cpp.o
[ 23%] Building CXX object AdsLib/CMakeFiles/ads.dir/LicenseAccess.cpp.o
[ 26%] Building CXX object AdsLib/CMakeFiles/ads.dir/Log.cpp.o
[ 30%] Building CXX object AdsLib/CMakeFiles/ads.dir/RouterAccess.cpp.o
[ 34%] Building CXX object AdsLib/CMakeFiles/ads.dir/RTimeAccess.cpp.o
[ 38%] Building CXX object AdsLib/CMakeFiles/ads.dir/Sockets.cpp.o
[ 42%] Building CXX object AdsLib/CMakeFiles/ads.dir/RegistryAccess.cpp.o
[ 46%] Building CXX object AdsLib/CMakeFiles/ads.dir/SymbolAccess.cpp.o
[ 50%] Building CXX object AdsLib/CMakeFiles/ads.dir/bhf/ParameterList.cpp.o
[ 53%] Building CXX object AdsLib/CMakeFiles/ads.dir/standalone/AdsLib.cpp.o
[ 57%] Building CXX object AdsLib/CMakeFiles/ads.dir/standalone/AmsConnection.cpp.o
[ 61%] Building CXX object AdsLib/CMakeFiles/ads.dir/standalone/AmsNetId.cpp.o
[ 65%] Building CXX object AdsLib/CMakeFiles/ads.dir/standalone/AmsPort.cpp.o
[ 69%] Building CXX object AdsLib/CMakeFiles/ads.dir/standalone/AmsRouter.cpp.o
[ 73%] Building CXX object AdsLib/CMakeFiles/ads.dir/standalone/NotificationDispatcher.cpp.o
[ 76%] Linking CXX shared library libads.so
[ 76%] Built target ads
[ 80%] Building CXX object AdsTool/CMakeFiles/AdsTool.dir/main.cpp.o
[ 84%] Linking CXX executable AdsTool
/usr/bin/ld: CMakeFiles/AdsTool.dir/main.cpp.o: in function `RunECat(AmsNetId, unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bhf::Commandline&)':
main.cpp:(.text+0xd43): undefined reference to `bhf::ads::ECatAccess::ECatAccess(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, AmsNetId, unsigned short)'
/usr/bin/ld: main.cpp:(.text+0xd78): undefined reference to `bhf::ads::ECatAccess::ListECatMasters(std::ostream&) const'
collect2: error: ld returned 1 exit status
make[2]: *** [AdsTool/CMakeFiles/AdsTool.dir/build.make:98: AdsTool/AdsTool] Error 1
make[1]: *** [CMakeFiles/Makefile2:178: AdsTool/CMakeFiles/AdsTool.dir/all] Error 2
make: *** [Makefile:136: all] Error 2

Seems like ECatAccess.cpp was not added in the AdsLib CMakeLists.txt source list.

IricEmage commented 6 months ago

Same problem

pbruenn commented 5 months ago

should be fixed by https://github.com/Beckhoff/ADS/commit/4346931dcfa26687cd8be4fb2b52206b82632444