繁体   English   中英

CLion找不到CMake生成的标头?

[英]CLion can't find CMake generated headers?

通过CMake教程

├── CMakeLists.txt
├── src
│   └── main.cpp
└── templates
    └── fooConf.h.in

的CMakeLists.txt

cmake_minimum_required(VERSION 3.2)
project(foo)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

set(PROJECT_SOURCE_DIR src)
set(PROJECT_TEMPLATE_DIR templates)

set(SOURCE_FILES ${PROJECT_SOURCE_DIR}/main.cpp)
set(${PROJECT_NAME}_MAJOR 0)
set(${PROJECT_NAME}_MINOR 1)
set(${PROJECT_NAME}_MICRO 1)
configure_file (
  "${PROJECT_TEMPLATE_DIR}/fooConf.h.in"
  "${PROJECT_SOURCE_DIR}/fooConf.h"
)

add_executable(foo ${SOURCE_FILES})

模板/ fooConf.h.in

#define @PROJECT_NAME@_VERSION_MAJOR @PROJECT_NAME@@_VERSION_MAJOR@
#define @PROJECT_NAME@_VERSION_MINOR @PROJECT_NAME@@_VERSION_MINOR@
#define @PROJECT_NAME@_VERSION_MICRO @PROJECT_NAME@@_VERSION_MICRO@

SRC / main.cpp中

#include <iostream>

#include "src/fooConf.h"
// Also tried: "fooConf.h"

int main() {
    std::cout << foo_VERSION_MAJOR;
    return 0;
}

[错误]

fatal error: src/fooConf.h: No such file or directory

您的fooConf.h头文件是在二进制树中生成的(恰好在${CMAKE_BINARY_DIR}/src/ )。 因此,您应该发出相应的include_directories()命令以在#include使用该文件。 例如:

的CMakeLists.txt

....
include_directories(${CMAKE_BINARY_DIR})
add_executable(foo ${SOURCE_FILES})

SRC / main.cpp中

....
#include "src/fooConf.h"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM