如何指示CMake链接到库的非编号版本?例如,在使用Boost库时,我有:
find_package(Boost COMPONENTS regex program_options REQUIRED)
target_link_libraries(main ${Boost_PROGRAM_OPTIONS_LIBRARY})
和libboost_program_options.so.1.49.0的可执行链接。如果我尝试在较旧的计算机上运行此可执行文件,它将失败,因为虽然我知道该库中已存在此功能,但仍无法找到该库。
答案 0 :(得分:0)
这不起作用。尽管功能存在,但确切的API可能不存在。这就是为什么UNIX链接系统使用符号链接,以便链接器访问未编号的符号链接,然后在写出依赖项列表时取消引用它,以在运行时要求相同的主要版本。
您有3个选择:
SET(Boost_USE_STATIC_LIBS ON)