【发布时间】:2022-01-02 00:33:10
【问题描述】:
我正在尝试在 Ubuntu 下将 .o 文件编译/链接到 .dll 文件中...
我几乎可以使用它,但我在静态链接这些 .o 文件时遇到问题...
这是我所做的:
首先我安装了所有依赖项......然后我构建了以下应用程序:
https://github.com/Zeranoe/mingw-w64-build
在我的 Ubuntu 上。
之后,我使用普通的“sudo make”命令从应用程序创建 .o 文件...
现在我已经准备好所有 .o 文件...然后我用“dlltool”修改了 .o 文件,所以现在我有机会用“mingw”将它们链接到一个 .dll 文件...它仅在“共享模式”下工作...不适用于“静态模式”...
这是工作命令:
sudo /home/robert/Downloads/mingw-32/x86_64/i686/bin/i686-w64-mingw32-g++ -shared -lmsvcrt -Wl,-subsystem,windows *.o -o phpcppdll.dll
这不起作用:
sudo /home/robert/Downloads/mingw-32/x86_64/i686/bin/i686-w64-mingw32-g++ -static -lmsvcrt -Wl,-subsystem,windows *.o -o phpcppdll.dll
然后我收到以下错误 - 使用此命令:
/home/robert/Downloads/mingw-32/x86_64/i686/bin/../lib/gcc/i686-w64-mingw32/11.2.1/../../../../i686-w64-mingw32/bin/ld: /home/robert/Downloads/mingw-32/x86_64/i686/bin/../lib/gcc/i686-w64-mingw32/11.2.1/../../../../i686-w64-mingw32/lib/../lib/libmingw32.a(lib32_libmingw32_a-crt0_c.o):crt0_c.c:(.text+0x3c): undefined reference to `WinMain@16'
collect2: error: ld returned 1 exit status
但我没有更进一步,也许你有一个想法......
【问题讨论】:
-
不,这不是 - 他们不直接用 mingw 编译!
标签: linux dll compilation