问题描述:
在安装好软件后,进行编译时,发现
main.cpp:(.text+0xaa1): undefined reference to `aliceVision::system::Logger::getDefaultVerboseLevel()'
main.cpp:(.text+0xab4): undefined reference to `aliceVision::system::EVerboseLevel_enumToString[abi:cxx11](aliceVision::system::EVerboseLevel)'
main.cpp:(.text+0x13fc): undefined reference to `aliceVision::system::Logger::get()'
main.cpp:(.text+0x1420): undefined reference to `aliceVision::system::Logger::setLogLevel(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
会有undefined reference to问题,查找原因可能是因为没有动态库的实现,但在/usr/local/lib下明明有这些动态库。并且将动态库的路径添加至环境变量也没有解决问题,最终参考程序自带的cmakelist,才顺利解决
解决方法:
cmakelist中指定要连接的库就可以
add_executable(main main.cpp)
target_link_libraries(main
aliceVision_system
${CERES_LIBRARIES}
${Boost_LIBRARIES}
)