Python 更改通过pybind11_add_模块创建的库的输出目录
我正在使用CMake为使用Pybind11的代码构建一些python绑定。它工作得很好,但是它们在主Python 更改通过pybind11_add_模块创建的库的输出目录,python,cmake,pybind11,Python,Cmake,Pybind11,我正在使用CMake为使用Pybind11的代码构建一些python绑定。它工作得很好,但是它们在主build目录中编译。我希望它们构建在build\python目录下。我正在尝试以下方法: pybind11_add_module(myModule src/main.cpp) set_target_properties(myModule PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/python") 但是它没有按预期工作,my
build
目录中编译。我希望它们构建在build\python
目录下。我正在尝试以下方法:
pybind11_add_module(myModule src/main.cpp)
set_target_properties(myModule PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/python")
但是它没有按预期工作,myModule
仍然构建在build
目录上,就好像没有调用set\u target\u属性一样
在官方pybind11\u add\u模块
文档中写道:
该函数的行为非常类似于CMake的内置add_库(实际上,它是围绕该命令的包装函数)。它将添加一个从列出的源文件生成的库目标。此外,它将处理所有特定于Python的编译器和链接器标志以及特定于OS和Python版本的文件扩展名。生成的目标可以使用常规的CMake命令进行进一步操作
所以我假设set\u target\u properties
可以用来指示它后面的不同输出目录,不是这样吗?如果没有,如何做到这一点
提前谢谢你 pybind11
模块是共享或模块类型的库
在除Windows(及其dll
)以外的所有平台上,通过LIBRARY\u OUTPUT\u directory
指定共享库的生成目录
在所有平台上,模块库的生成目录都是通过LIBRARY\u OUTPUT\u directory
指定的,没有例外
CMake中输出工件类型的详细说明以及相应的output
变量可在Windows上dll
库的.p>属性RUNTIME\u output\u目录
影响中找到。对于。因此
库您需要使用库\u输出\u目录
属性。谢谢!!就是这样,真不敢相信我在文件里漏掉了。如果你想添加它作为一个答案,我会很高兴地标记为解决它!