众所周知,target_link_libraries是用来在编译期链接库文件的。
例如如下CMakeLists.txt:
target_link_libraries(execution_name,
mySystem
myCommon
gmock
gtest
gcov
pthread
yaml-cpp)
其中,链接库的放置次序是有讲究滴,主要原则是被依赖库需要放置在后面。
例如上述代码块,
mySystem是依赖myCommon的,故myCommon必须放置在mySystem后面;
mySystem和myCommon均依赖于pthread和yaml-cpp,故pthread和yaml-cpp需放置在mySystem和myCommon后面。
越底层(被依赖项越多)的库越需要放在最后。
如果不遵守上述规则,则可能在编译时报错“xxx未定义”。
by the way, 打开csdn才发现今天是1024,跟同事讨论了一下,我司完全没有工程师文化,啥活动都么有。guanliao文化倒挺浓厚。