我正在尝试将Math.cpp转换为Cygwin中的dll。 我正在Cygwin中尝试这段代码进行编译。
gcc -c Math.cpp
现在我正在尝试将.o转换为.dll。为此,我使用了以下代码
gcc -shared -o Math.dll Math.o
我在cygwin中收到一条巨大的错误消息,上面写着“Math.o:Math.cpp :(。text + 0x55):未定义引用std::ios_base::Init::Init()'
Math.o:Math.cpp:(.text+0x55): relocation truncated to fit: R_X86_64_PC32 against undefined symbol
std :: ios_base :: Init :: Init() Math.o:Math.cpp :(。text $ _ZN11Mathematics5inputEv [_ZN11Mathematics5inputEv] + 0x21):未定义的引用`std :: basic_ostream>& std :: operator<<>(std :: basic_ostream>& ,char const *)''“等等。
在我的C ++程序中,命名空间是std; class name是Mathematics,有两个方法input()和add(),还有一个调用这些方法的main方法。
答案 0 :(得分:0)
使用g++
而不是gcc
这将导致gcc与标准C ++库链接,后者应解析这些符号。