最近在尝试cmakelists中生成动态库的时候
set(${CMAKE_LIBRARY_OUTPUT_DIRECTORY} ${ROOT}/lib)
add_library(mytest SHARED dir1/function.cpp)
include_directories(xxxxxx)
add_executable(main pthread mytest)
这样写了之后发现能够成功编译生成main。
但我觉得,照道理我修改了libmytest.so的生成位置,应该需要添加link_directories指令指定动态库的位置才能让链接器找到这个动态库。因此随便试了下把add_library去掉,不放link_directories,果然链接失败了,放了link_directories链接才能成功。
所以我猜add_library了之后这个mytest相当于一个生成好的路径,所以不需要另外指定lib的搜索范围了。