为什么 Windows 上的 cmake 指定重复的 SWIG python 语言指示?

问题描述 投票:0回答:1

我使用 cmake 在 Linux 上成功构建了 python 和我的 C++ 库之间的 SWIG 接口。 (好吧,除了在 Linux 上,模块名称的开头会添加一个额外的 _)。

但是,在 Windows 上,构建失败并显示“一次只能支持一种目标语言(指定了 -python 和 -python)”。我的 SWIG_ADD_LIBRARY 调用很简单:

SWIG_ADD_LIBRARY(pyIntegration 类型共享语言 PYTHON 源 example.i example.h 等)

我的 .i 文件不是很令人兴奋,只是一个模块规范:%module pyIntegration

和一些 typedef(例如 unsigned int uint32_t 等)。

有什么想法吗?看起来很可能是 cmake 错误,但如何最好地解决呢? 非常感谢您的帮助!

python cmake swig
1个回答
0
投票

请提供使用的 CMake 版本,因为

UseSWIG
内置模块在 3.19 IIRC 中进行了一些返工

您是否在

example.i
文件上设置了某些属性?

应该是:

set_property(SOURCE example.i PROPERTY CPLUSPLUS ON)
swig_add_library(pyIntegration LANGUAGE python SOURCES example.i)

参考:https://cmake.org/cmake/help/latest/module/UseSWIG.html

ps:您可以在这里找到工作示例:https://github.com/Mizux/python-native

© www.soinside.com 2019 - 2024. All rights reserved.