更改通过pybind11_add_module创建的库的输出目录

我正在使用CMake为使用Pybind11的代码构建一些python绑定。它运行良好,但它们在主目录中编译。我希望它们建立在目录上。我正在尝试以下操作:buildbuild\python


pybind11_add_module(myModule src/main.cpp)

set_target_properties(myModule PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/python")

但它没有按预期工作,仍然建立在目录上,就好像没有被调用一样。myModulebuildset_target_properties


在官方文档中是这样写的:pybind11_add_module


此函数的行为非常类似于 CMake 的内置add_library(实际上,它是围绕该命令的包装器函数)。它将添加一个从列出的源文件构建的库目标。此外,它还将负责所有特定于Python的编译器和链接器标志以及特定于操作系统和Python版本的文件扩展名。可以使用常规 CMake 命令进一步操作生成的目标。


所以我假设可以用来表示它之后的不同输出目录,不是这样吗?如果没有,如何做到这一点?set_target_properties


提前感谢您!


MYYA
浏览 459回答 1
1回答

眼眸繁星

pybind11模块是共享或模块类型的库。共享库的构建目录是通过除 Windows(及其)之外的所有平台上指定的。LIBRARY_OUTPUT_DIRECTORYdllMODULE库的构建目录是通过在所有平台上指定的,无一例外。LIBRARY_OUTPUT_DIRECTORY有关 CMake 中输出工件的类型和相应变量的详细说明,请参阅文档。OUTPUT
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python