根据应用程序提升python模块的命名

问题描述

我正在尝试使用Boost Python将C ++库包装到python模块中。
由于库中有许多配置,所以我希望输出共享库的名称取决于配置。
例如,在我的CMakeLists.txt中(CONfig用户传递的变量,是整数)

string(APPEND lib_name "config_" ${CONfig})
add_library(${lib_name} SHARED wrapper.cpp)
string(toupper define_name ${lib_name})
set_target_properties(${lib_name} PROPERTIES COMPILE_DEFinitioNS ${define_name})
target_link_libraries(${lib_name} ${Boost_LIBRARIES} ${PYTHON_LIBRARIES})

在我的wrapper.cpp中,我使用#ifdef#define#endif来命名模块

#ifdef CONfig_1
#define MODULE_NAME config_1
#endif
#ifdef CONfig_2
#define MODULE_NAME config_2
#endif
// etc
BOOST_PYTHON_MODULE(MODULE_NAME){
  // wrapping
}
    

但是我尝试导入时出现导入错误

import config_X

由于未定义初始化模块

是否有根据应用程序命名共享对象的方法,而不是固定方法?非常感谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)