Mingw构建 - 依赖于DLL不是Windows的原生

J T*_*J T 9 c++ mingw build shared-libraries

我正在使用MinGW(GCC 4.5.0)编译我的库以作为共享库导出.我这样做是通过使用MAKE命令编译所有源文件,类似于:

gcc -shared -c mysource.cpp -o mysource.o
Run Code Online (Sandbox Code Playgroud)

最后:

gcc -shared -lstdc++ -lm -lws2_32 mysource.o -o mylib.dll
Run Code Online (Sandbox Code Playgroud)

当我对输出文件进行依赖性遍历时(例如使用http://www.dependencywalker.com/),我看到有3个依赖项:

KERNEL32.dll
MSVCRT.dll
LIBSTDC++-6.DLL
Run Code Online (Sandbox Code Playgroud)

让我的DLL依赖于不附带windows的文件对于我的最终目标来说是次优的.

有没有办法我可以设置我的系统,以便最终输出(DLL)依赖于KERNEL32MSVCRT

eri*_*ous 7

-static标志可能是你在找什么.(对我来说,使用两者-static并且-shared在同一条线上看起来仍然很有趣,但它们不是对立的.)

如果您将g++用作驱动程序而不是gcc,则可以使用该-static-libstdc++标志.