dllwrap 无法使用 <iostream>?
dllwrap could not work with <iostream>?
dllwrap 是 GNU GCC 在 mingw 中的工具。它用于构建像 gcc 或 g++ 这样的.dll文件,但我发现它不能很好地工作,如下所示:
你好3.cpp
#include<iostream>
extern "C" void MyDllSay( void )
{
}
你好3.def
LIBRARY hello3.dll
EXPORTS
MyDllSay @1
hello = MyDllSay @2
编译器代码是
g++.exe -c -O3 hello3.cpp
dllwrap.exe -o hello3.dll hello3.o --defhello3.def --output-lib 利贝洛3.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()' collect2.exe: 错误: ld 返回 1 个退出 地位
如果我像这样设置 hello3.cpp
//#include<iostream>
#include<fstream>
extern "C" void MyDllSay( void )
{
}
或者像这样
//#include<iostream>
extern "C" void MyDllSay( void )
{
}
一切都很好。如何让dllwrap与iostream一起工作?
提前非常感谢任何帮助!
我刚刚在 dllwrap 中测试了 a 选项。效果很好,我会进一步检查。但我在dllwrap旧维基中找不到解释
选项是
-lstdc++ 新的编译器是 dllwrap.exe -o hello3.dll hello3.o --def hello3.def --output-lib libhello3.a -lstdc++
相关文章:
- 是否可以用"iostream"包装现有的TCP/OOpenSSL会话
- 需要从 istream 和 ostream 派生 iostream
- EASTL矢量<向量<int>>连续的
- std::带有自定义缓冲区的 iostream 不允许我写入
- 新的放置取决于 iostream
- 包含在 <initializer_list> <iostream>?
- 为什么在包含iostream时可以使用printf()?
- 如果 iostream 对象不可复制,为什么以下代码是合法的?
- 为什么我必须在包含后写 std::cin <iostream>?
- 如何将带有空字符的字节数组馈送到 std::iostream 中?
- 磁力计代码:C++ vs C - iosstream,矢量 - 错误iostream:没有这样的文件或目录
- 通过boost asio iostream下载大文件的最快方法是什么?
- 为什么 VScode 在 .h 文件中显示"'iostream' file not found"?
- 包含iostream导致不同的二进制文件
- iostream运算符重载的C++异常规范
- basic_iostream和iostream之间的区别
- iostream 和 fstream 的重载<<
- Borland C++编译器中的Iostream
- 从类模板继承时需要iostream
- 为什么<iostream>依赖MinGW dll?