小编Pat*_*kss的帖子

CMake add_executable 在另一个目录中

我正在进行一系列测试以验证每个库是否正确链接,然后对我的代码功能进行了一些测试。

我想在目录 project/build/tests 中有 X 个不同的可执行文件,我希望我的程序在 project/build 中构建

cmake_minimum_required(VERSION 3.0)
project(ProjectName)
# Linking library ...
add_executable(${PROJECT_NAME} ${SRC_LIST} ${INCLUDE_LIST})
Run Code Online (Sandbox Code Playgroud)

到这里为止,一切都很好并且可以正常工作,但是我不知道如何告诉 cmake 在另一个目录中创建我的测试,因为这不起作用

add_executable(tests/OpenMP_Check tests/openmp.cpp)
Run Code Online (Sandbox Code Playgroud)

我的项目有这样的架构:

项目 :

  • 源文件
  • 包括
  • 建造
    • 测试
  • 测试

简而言之:如何让 CMake 在另一个目录中创建我的测试?

c++ cmake

3
推荐指数
2
解决办法
5479
查看次数

如何修复:Anaconda 找不到 pyconfig.h

我正在为库的 python 绑定设置 boost-python 。之前安装了 boost,但与 python2.7 链接。经过一番磨难后,以前的 boost 安装中的所有内容都消失了,我正在尝试安装新的 boost。

我使用 Linux Mint 进行记录,并使用 Anaconda 和 python 3.6.8。它在 CLI 中正常工作: python --version 给出 3.6.8

然后我开始按照构建 boost 的说明进行操作:https ://www.boost.org/users/history/version_1_69_0.html

我从其他线程得到的是这样做:

sudo apt-get install python3-dev
Run Code Online (Sandbox Code Playgroud)

我不确定我应该这样做,因为我有 anaconda3,但无论如何,我做到了。

./bootstrap.sh
Run Code Online (Sandbox Code Playgroud)

这里创建了文件project-config.jam,关于python的行说:

using python : 3.6 : /home/myUser/anaconda3 ; 
Run Code Online (Sandbox Code Playgroud)

然后我继续使用 b2 进行构建:

sudo ./b2 --with-python -j8 install
Run Code Online (Sandbox Code Playgroud)

安装失败,文字墙充满了这些:

./boost/python/detail/wrap_python.hpp:50:11: fatal error: 
pyconfig.h: No such file or directory
# include <pyconfig.h>
          ^~~~~~~~~~~~
compilation terminated.
Run Code Online (Sandbox Code Playgroud)

当我在 ~/anaconda3/include/python3.6m 内部搜索时,文件 pyconfig.h 按预期位于那里

我应该向 b2 或 bootstrap 提供其他信息吗?

c++ python binding

3
推荐指数
1
解决办法
4425
查看次数

标签 统计

c++ ×2

binding ×1

cmake ×1

python ×1