【发布时间】:2017-07-20 20:45:54
【问题描述】:
我的项目结构如下:
--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})
src目录下的CmakeLists.txt:
include_directories(${PROJECT_SOURCE_DIR}/include)
如何在根目录和src目录下编写CMakelists,实现功能分开实现?更进一步,如何在 main 中调用它们。 CMake not finding proper header/include files in include_directories 中的可能解决方案。但是还是不符合我的情况。
【问题讨论】:
-
${SOURCES}不应包含头文件。使用include_directories指定include路径。 -
@πάνταῥεῖ 您可以将头文件放在目标的源中。 CMake 不会尝试编译它们,而是其他工具,例如IDE,可以在列表/树中显示标题,这非常好。
-
如何在 Qt 树中显示包含/标题正是我想要的。但是我不太明白你上面提到的具体操作。也许你可以告诉我如何在下面接受的答案中添加操作。
-
@Biffen 谢谢你的帮助。