0

我正在尝试开发一个从 Python 调用的 C++ 模块。

我已经编写了一个测试用例,但是当我尝试调整 python 时,导入失败了

Traceback (most recent call last):
File "testHull.py", line 1, in <module>
import CallGCAL

ImportError: /usr/lib/freecad/Mod/OpenSCAD/GCAL/CallGCAL.so:
undefined symbol: _ZNSt8ios_base4InitD1Ev

用于编译 C++ 模块的 C 编译器是 gcc 4.4.3。

从谷歌搜索中我得到的印象是我正在使用的 Gcc 版本与用于编译 python 的版本是 2.6 之间存在不兼容性,但不知道如何继续。

我知道 python 2.6 已经过时了,但我正在尝试在只支持 Python 2.6 的 FreeCAD 0.13 中运行一些东西

4

1 回答 1

2

使用该g++命令编译 C++ 代码,而不是gcc.

g++仍然是 GCC,但它处于 C++ 模式,因此它将链接到标准 C++ 库。

未定义的符号是:

$ c++filt -n _ZNSt8ios_base4InitD1Ev
std::ios_base::Init::~Init()

换句话说,标准库没有被链接。

于 2013-10-12T10:04:58.807 回答