在CYGWIN中为C ++程序创建DLL

时间:2015-05-21 09:04:43

标签: c++ cygwin

我正在尝试将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方法。

1 个答案:

答案 0 :(得分:0)

使用g++而不是gcc

这将导致gcc与标准C ++库链接,后者应解析这些符号。