我正在处理CMake tutorial,我正在使用添加版本号和已配置的头文件部分。不幸的是,Xcode无法识别生成的头文件:
错误:
头文件由CMake ok生成:
TutorialConfig.h.in
// the configured options and settings for Tutorial
#define Tutorial_VERSION_MAJOR @Tutorial_VERSION_MAJOR@
#define Tutorial_VERSION_MINOR @Tutorial_VERSION_MINOR@
的CMakeLists.txt
cmake_minimum_required (VERSION 2.6)
project (Tutorial)
# The version number.
set (Tutorial_VERSION_MAJOR 1)
set (Tutorial_VERSION_MINOR 0)
# configure a header file to pass some of the CMake settings
# to the source code
configure_file (
"${PROJECT_SOURCE_DIR}/TutorialConfig.h.in"
"${PROJECT_BINARY_DIR}/TutorialConfig.h"
)
# add the binary tree to the search path for include files
# so that we will find TutorialConfig.h
include_directories("${PROJECT_BINARY_DIR}/src")
# add the executable
add_executable(Tutorial src/tutorial.cpp)
答案 0 :(得分:1)
我不使用Xcode,而是使用基于Linux的另一个IDE。但也许我可以帮助你一点。我只是想知道 - 你的程序是否编译?这可能更重要。
我的IDE经常抱怨你的头文件 - 也就是CMake生成的配置文件。这样的警告(至少对我而言)可以忽略不计。我经常这样做,因为我的构建/目录有时是空的。所以当我打开源文件时,还没有TutorialConfig.h。
实际上,IDE永远不会知道这样的头文件。那是因为它不知道你要编译程序的构建/目录。
如果您对警告感到担心,那么可能有一个地方可以指定Xcode哪个构建/目录来搜索头文件。在你运行一次CMake之后,这将删除警告。但是,删除这样的警告是不可靠的,因为你总是可以在另一个缺少TutorialConfig.h的目录中构建。
希望这有帮助!
答案 1 :(得分:1)
#include "src/TutorialConfig.h"
更改为#include "TutorialConfig.h"
,一切都很顺利。我通过检查项目设置找到了它: