minGW-64交叉编译器:libmsvcr110.a

时间:2018-06-06 22:57:21

标签: cross-compiling mingw-w64

我在四天前发布了一个类似的问题(Cross-linking for Windows on minGW64: can't find msvcrt.dll),但没有回复。通过进一步的工作,我已经完善了这个问题,所以我在这里重新提出了一个不同的问题。

我正在使用minGW-64在Linux(Ubuntu)云服务器上交叉链接Windows dll,但我遇到链接到libmsvcr110.a(msvcrt.dll的GCC版本)的问题。源文件是用NASM编写的,我在本地(在Windows上)和Linux云服务器上用NASM编译。在云端,我在minGW-64中与ld链接;我在本地链接GoLink。

minGW-64 cross的版本是mingw-w64-bin_x86_64-linux_20131228.tar.bz2。

我的链接字符串是:

sudo ld -dll -o PST.dll -e Main_Entry_fn -L / opt / minGW64 / x86_64-w64-mingw32 / lib / -L / opt / Test_Project -l:libmsvcr110.a PST.obj

它报告说它成功打开了libmsvcr110.a,但是说:

attempt to open /opt/minGW64/x86_64-w64-mingw32/lib//libmsvcr110.a succeeded
attempt to open PST.obj succeeded
ld: warning: cannot find entry symbol Main_Entry_fn; defaulting to 00000000004000b0
undefined reference to free
undefined reference to malloc
undefined reference to realloc

问题:

  1. 当我指定链接到libmsvcr110.a时,为什么会出现这些错误?

  2. 当我在链接字符串中使用-e开关指定它时,为什么报告“找不到输入符号”?

  3. 我对这两个问题进行了大量研究。有人建议我应该使用gcc而不是ld,但这不起作用,至少在Linux for Windows上进行交叉编译。没有其他研究表明这里存在问题。

    感谢您的帮助。

0 个答案:

没有答案