dllwrap是mingw中GNU GCC的工具。它用于构建.dll文件,如gcc或g ++。但我发现它不能很好地用下面的方法:
hello3.cpp
#include<iostream>
extern "C" void MyDllSay( void )
{
}
hello3.def
LIBRARY hello3.dll
EXPORTS
MyDllSay @1
hello = MyDllSay @2
编译器代码是
g ++。exe -c -O3 hello3.cpp
dllwrap.exe -o hello3.dll hello3.o --def hello3.def --output-lib libhello3.a
错误报告是
hello3.o:hello3.cpp :(。text + 0x8):未定义引用
std::ios_base::Init::~I nit()' hello3.o:hello3.cpp:(.text.startup+0xc): undefined reference to
std :: ios_base :: Init :: Init()&#39; collect2.exe:错误:ld返回1退出 状态
如果我像这样设置hello3.cpp
//#include<iostream>
#include<fstream>
extern "C" void MyDllSay( void )
{
}
或者像这样
//#include<iostream>
extern "C" void MyDllSay( void )
{
}
一切都很好。
如何让dllwrap与iostream一起工作?
非常感谢您提供任何帮助!
答案 0 :(得分:0)
我刚刚测试了dllwrap中的一个选项。它工作得很好,我会进一步检查。 但我在dllwrap old wiki
中找不到解释选项是
-lstdc ++ 新编译器是 dllwrap.exe -o hello3.dll hello3.o --def hello3.def --output-lib libhello3.a -lstdc ++