相关疑难解决方法(0)

如何使用CMake正确添加包含目录

大约一年前,我询问了CMake中的头依赖关系.

我最近意识到问题似乎是CMake认为那些头文件是项目外部的.至少,在生成Code :: Blocks项目时,头文件不会出现在项目中(源文件会出现).因此,在我看来,CMake认为这些标题是项目的外部,并且不会在依赖项中跟踪它们.

在CMake教程中快速搜索只指出include_directories哪个似乎没有我想做的...

向CMake发出信号通知特定目录是否包含要包含的标头的正确方法是什么,并且生成的Makefile应该跟踪这些标头?

c++ ubuntu cmake

208
推荐指数
7
解决办法
35万
查看次数

CMake中include_directories和target_include_directories有什么区别?

我有一个C++代码的目录结构,如下所示:

|
|->include
|->src
Run Code Online (Sandbox Code Playgroud)

我正在为我的代码编写一个CMakeLists.txt文件.我想明白之间的差别include_directories,并target_include_directoriesCMake.

它们的用法和为了添加我应该使用的包含文件路径有什么区别?

c++ cmake

107
推荐指数
3
解决办法
5万
查看次数

Cmake 使用 target_include_directories 时无法指定包含目录

我在我的项目中使用子模块 GitHub,现在我想使用target_include_directoriesfor 将文件包含在我的项目类中

这是我的 cmake 配置

cmake_minimum_required(VERSION 3.9)
project(SpyCBlock)

set(CMAKE_CXX_STANDARD 14)

#bitcoin rpc lib
find_library(bitcoinapi 0.3 REQUIRED)

target_include_directories(rapidjson PUBLIC include/rapidjson/include)

target_include_directories(spycblockrpc PUBLIC include/spycblockrpc)

target_include_directories(btccryptography PUBLIC include/bitcoin-cryptography-library)

add_executable(

        ${PROJECT_NAME}

        #other inclusion file cpp

        #cpp-properties file include
        include/cpp-properties/src/Properties.cpp
        include/cpp-properties/src/PropertiesParser.cpp
        include/cpp-properties/src/PropertiesUtils.cpp

        #include bitcoin-cryptography-library
        include/bitcoin-cryptography-library/cpp/Sha256.cpp
        include/bitcoin-cryptography-library/cpp/Sha256Hash.cpp
        include/bitcoin-cryptography-library/cpp/Utils.cpp

        #include spycblocrpc
        include/spycblockrpc/core/graph/TransactionGraph.cpp
        include/spycblockrpc/core/graph/WrapperInformations.cpp
        include/spycblockrpc/ConfiguratorSingleton.cpp

        include/spycblockrpc/commands/DecodeScriptCommand.cpp
        include/spycblockrpc/commands/DecodeRawTransaction.cpp
        include/spycblockrpc/commands/HeightBlockchainCommand.cpp
        include/spycblockrpc/commands/DecodeBlockAtIndexCommand.cpp

)

#bitcoin rpc lib
target_link_libraries(SpyCBlockTests bitcoinapi)
target_link_libraries(${PROJECT_NAME} bitcoinapi)
Run Code Online (Sandbox Code Playgroud)

运行 CMake 时出现此错误

Starting to parse CMake project.
CMake Error at CMakeLists.txt:20 (target_include_directories):
  Cannot specify include directories for …
Run Code Online (Sandbox Code Playgroud)

c++ cmake

6
推荐指数
1
解决办法
1万
查看次数

标签 统计

c++ ×3

cmake ×3

ubuntu ×1