c - MinGw 交叉编译

标签 c linux compilation wine

我正在尝试使用以下命令在 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 错误。 共享对象可以与其他对象链接以生成可执行文件。
参见 herehere

关于c - MinGw 交叉编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18824138/

相关文章:

c - libc 创建/访问哪些匿名区域?

c - 使用 NAG 数学库重新分发应用程序 - 客户端必须有许可证?

c - 如何让 NFS 支持 posix_fallocate?

c - 包括静态库和头文件Makefile问题(C)

compilation - 如何配置visual studio代码来编译scons?

类型转换指针?

linux - 复制 stdin 以检查结尾

linux - 通过 crontab -e 运行时脚本不运行

c++ - GCC 是否有办法指定是否在调用站点内联?

更改缓冲区大小以在 C 中复制文件