C++ cmake仅基于子目录的库
我正在尝试创建一个小的cmake文件。目录结构包括4个子文件夹,其中包含src和头文件。根目录下没有src或头文件。我只想通过编译这四个文件夹,使用cmake创建一个共享库。 根目录下的CMakeLists.txtC++ cmake仅基于子目录的库,c++,linux,cmake,subdirectory,C++,Linux,Cmake,Subdirectory,我正在尝试创建一个小的cmake文件。目录结构包括4个子文件夹,其中包含src和头文件。根目录下没有src或头文件。我只想通过编译这四个文件夹,使用cmake创建一个共享库。 根目录下的CMakeLists.txt cmake_minimum_required (VERSION 2.8.7) Project(NEWPROJ) set(${PROJECT_NAME}_MAJOR_VERSION 00) set(${PROJECT_NAME}_MINOR_VERSION 01) set(${PROJ
cmake_minimum_required (VERSION 2.8.7)
Project(NEWPROJ)
set(${PROJECT_NAME}_MAJOR_VERSION 00)
set(${PROJECT_NAME}_MINOR_VERSION 01)
set(${PROJECT_NAME} 0)
set(${PROJECT_NAME}_VERSION
${${PROJECT_NAME}_MAJOR_VERSION}.${${PROJECT_NAME}_MINOR_VERSION}.${${PROJECT_NAME}_PATCH_VERSION})
set(${PROJECT_NAME}_SOVERSION ${${PROJECT_NAME}_MAJOR_VERSION}.${${PROJECT_NAME}_MINOR_VERSION})
Message ( Root )
include_directories("${PROJECT_SOURCE_DIR}/Folder1/include")
include_directories("${PROJECT_SOURCE_DIR}/Folder2/include")
include_directories("${PROJECT_SOURCE_DIR}/Folder3/include")
include_directories("${PROJECT_SOURCE_DIR}/Folder4/include")
add_subdirectory ("${PROJECT_SOURCE_DIR}/Folder1")
add_subdirectory ("${PROJECT_SOURCE_DIR}/Folder2")
add_subdirectory ("${PROJECT_SOURCE_DIR}/Folder3")
add_subdirectory ("${PROJECT_SOURCE_DIR}/Folder4")
add_library( ${PROJECT_NAME} SHARED ${SOURCE} ${HEADERS})
Folder1中的CMakeLists.txt
MESSAGE(Folder1)
set(SOURCE
${SOURCE}
${CMAKE_CURRENT_SOURCE_DIR}/src/file1.cc
${CMAKE_CURRENT_SOURCE_DIR}/src/file2.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/file3.cc
PARENT_SCOPE
)
set(HEADERS
${HEADERS}
${CMAKE_CURRENT_SOURCE_DIR}/include/file1.h
${CMAKE_CURRENT_SOURCE_DIR}/include/file2.h
${CMAKE_CURRENT_SOURCE_DIR}/include/file3.h
${CMAKE_CURRENT_SOURCE_DIR}/include/file4.h
PARENT_SCOPE
)
克马克。。成功的
使folder1/src/file1.cc:1:20:致命错误:file1.h:没有这样的文件或目录
file1.cc
#include "file1.h"
…我不知道你发布的代码是如何导致这个问题的。。。如果您可以设置一个小的GitHub存储库,它会导致与我可以尝试自己编译的问题相同的问题,这将非常有用。获取此信息,在执行包含目录时,双引号丢失。除了敲打脑袋,没办法知道。cmake没有错误。我对在根目录上声明include_目录的方式也不太满意。我可以在每个文件夹级别都这样做吗?是的。因此,添加缺少的右引号。是
Folder1
还是Folder1
?我不知道问题是如何由您发布的代码引起的。。。如果您可以设置一个小的GitHub存储库,它会导致与我可以尝试自己编译的问题相同的问题,这将非常有用。获取此信息,在执行包含目录时,双引号丢失。除了敲打脑袋,没办法知道。cmake没有错误。我对在根目录上声明include_目录的方式也不太满意。我可以在每个文件夹级别都这样做吗?是的。因此,添加缺少的右引号。是Folder1
还是Folder1
?