clion build失败,cmake命令构建成功,而并行构建时失败

时间:2017-09-29 10:52:56

标签: cmake clion

我最近使用clion来构建我的项目,我可以使用cmake来构建我的所有项目,但是使用clion构建都失败了。谁能帮我?感谢。

我使用clion版本是2017.2,使用clion捆绑的cmake 3.8.2和gdb 3.5.1。 我的项目结构:

项目
├──项目1 │├──src
│└──CMakeLists.txt
├──项目2
│├──src
│└──CMakeLists.txt
├──项目3
│├──src
│└──CMakeLists.txt
└──CMakeLists.txt

项目的CMakeLists.txt是:

add_subdirectory(./project1)  
add_subdirectory(./project2)  
add_subdirectory(./project3)  

project1的CMakeLists.txt用于构建静态lib1.a:

aux_source_directory(./src ${LIB1_SRC})  
include_directories(./src ${LIB1_INC})  
add_library(lib1 STATIC ${LIB1_SRC})  

project2的CMakeLists.txt用于构建静态lib2.a:

aux_source_directory(./src ${LIB2_SRC})  
include_directories(./src ${LIB2_INC})  
add_library(lib2 STATIC ${LIB2_SRC})  

project3的CMakeLists.txt需要链接lib1.a和lib2.a来构建共享lib3.so:

aux_source_directory(./src ${LIB3_SRC})  
include_directories(./src ${LIB3_INC})  
add_library(lib3 SHARED ${LIB3_SRC})   
target_link_libraries(lib3 ${LIB1_PATH}/lib1.a  ${LIB2_PATH}/lib2.a)  
set_property(TARGET lib3 PROPERTY LINK_DEPENDS ${LIB1_PATH}/lib1.a  ${LIB2_PATH}/lib2.a)

当我使用clion run / debug配置来选择lib3和buld时,它会构建失败,lib1说,或者lib3.so需要lib2。在运行/调试配置中选择lib1和lib2时,我可以使用clion构建lib1和lib2成功

我有另一次尝试,我使用cmake ./,然后make -j 16,它有同样的问题。如果我使用make -j 1,它就会成功。
为什么它不能并行构建? clion默认使用并行构建吗?

最诚挚的问候,
西蒙

1 个答案:

答案 0 :(得分:0)

您的CMakeLists.txt不完整,但我想更改lib3的target_link_libraries会解决您的问题

target_link_libraries(lib3 lib1 lib2)  

关于您的CLion问题,文件 - >设置 - >构建,执行,部署 - > cmake->构建选项

在这里,您可以配置是否要使用并行构建