我正在尝试使用以下命令在 linux 上编译一个 windows .c 文件:
wine gcc.exe x.c -o x.exe -lws2_32
我得到了这个错误。
C:/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../libmingw32.a(main.o):main.c:(.text+0x104): undefined reference to `WinMain@16'
但是,当使用带有 -shared
属性的 gcc.exe
时,错误消失了。
wine gcc.exe -shared x.c -o x.exe -lws2_32
我尝试查看 gcc.exe 的帮助页面,但找不到与“-shared”参数相关的任何内容
这个参数有什么作用?
最佳答案
-shared
将从代码创建共享对象,而不是可执行文件。
可执行文件需要一个 main 函数作为入口点,因此您会看到 undefined reference
错误。
共享对象可以与其他对象链接以生成可执行文件。
参见 here或 here
关于c - MinGw 交叉编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18824138/