一般来说,系统默认的配置会放在 LDFLAGS
环境变量中,用于指定默认的库查找路径,有一些子项目会使用自已附带的最新版或定制版第三方库,会希望将自已附带的库路径放到最前面。
LDFLAGS
环境变量指定了库查找路径 A -L/opt/a/lib
, CMakeLists.txt
指定了库查找路径 B link_directories(/opt/b/lib)
,实际上 A 总是会位于 B 之前,这是因为
CMake 并没有解析 LDFLAGS
中的 -L
选项。
相关讨论 {CMake} Link directories order
当对库查找路径的顺序有要求时,不应该使用 link_directories
选项来指定库查找路径,而是使用 CMAKE_*_LINKER_FLAGS
,如
set(CMAKE_EXE_LINKER_FLAGS "-L/opt/b/lib ${CMAKE_EXE_LINKER_FLAGS}")