我的项目是在结构如下:如何分离CMake中的头文件和源文件?
--root: main.cpp CMakeLists.txt
--src: function.cpp CMakeLists.txt
--include: function.h
main.cpp中:
#include <iostream>
#include "function.h"
using namespace std;
int main(int argc, char *argv[])
{
//call module in function.hpp
return 0;
}
的CMakeLists.txt在根目录下:
project(t1)
cmake_minimum_required(VERSION 2.8)
add_subdirectory(src)
file(GLOB_RECURSE SOURCES
include/function.h
src/function.cpp)
add_executable(${PROJECT_NAME} ${SOURCES})
的CMakeLists.txt在src目录:
include_directories(${PROJECT_SOURCE_DIR}/include)
如何在root和src目录下编写CMakelists来实现函数的单独实现?还有更多,如何在主要方面给他们打电话。 CMake not finding proper header/include files in include_directories可能的解决方案。但它仍然不符合我的情况。
'$ {SOURCES}'不应该包含头文件。使用'include_directories'来指定'include'路径。 –
@πάνταῥεῖ你*可以*将头文件放入目标的源文件中。 CMake不会尝试编译它们,但其他工具,例如IDE,可以在列表/树中显示标题,这可能相当不错。 – Biffen
如何在Qt树中显示include/headers正是我所期望的。但我不能完全理解你上面提到的具体操作。也许你可以告诉我如何将操作添加到下面接受的答案中。 – Qinchen