分多个cmake配置源码工程时,通过include引入其他的cmakeLists.txt时,遇到该问题:
screenshot-20220728-113520.png
百度了之后,该错误表示是CMake无法确定目标的链接器语言,很多解决的办法是设置强制使用C++语法链接
set_target_properties(Engine PROPERTIES LINKER_LANGUAGE CXX)
我确实也尝试设置了错误就不在了,但是实际源文件并没有打包到SO库,再经过多次查找发现最根本的原因:实际是因为当需要分开配置Cmake时(多个CmakeLists.txt)在里层被引入的CmakeLists.txt不能再使用PROJECT_SOURCE_DIR,或者CMAKE_CURRENT_SOURCE_DIR 去设置查找当前的源文件,因为会被外层的c外层include引入的cmakeLists.txt
网友评论