【问题标题】:CodeBlocks: how can I link libstdc++ dynamically?CodeBlocks:如何动态链接 libstdc++?
【发布时间】:2012-06-20 19:53:42
【问题描述】:

我可能会做出一些隐含的假设。如有错误,请指正。

环境

Win32、TDM GCC 4.6.1、Codeblocks 10.05、Codeblocks 能够使用 gnu 工具链编译 C++。

问题

据我所知,也可以动态和静态地链接 stdlibc++。目前 CodeBlocks 静态地链接 libstdc++。虽然我在代码块“构建设置”面板中找不到与动态/静态链接相关的任何设置,但我可以使用进程监视器验证它静态链接 c++ 标准库。

CodeBlocks 使用以下参数执行 g++:

mingw32-g++.exe  -o bin\Release\fltk-hello.exe
obj\Release\fltk-hello.o   -s C:\MinGW32\lib\libfltk.a
C:\MinGW32\lib\libgdi32.a C:\MinGW32\lib\libole32.a
C:\MinGW32\lib\libuuid.a C:\MinGW32\lib\libcomdlg32.a
C:\MinGW32\lib\libcomctl32.a

然后,有一个来自 g++ 的调用:

"c:/mingw32/bin/../libexec/gcc/mingw32/4.6.1/collect2.exe"
"-Bdynamic" "-o" "bin\Release\fltk-hello.exe" "-s"
"c:/mingw32/bin/../lib/gcc/mingw32/4.6.1/../../../crt2.o"
"c:/mingw32/bin/../lib/gcc/mingw32/4.6.1/crtbegin.o"
"-Lc:/mingw32/bin/../lib/gcc/mingw32/4.6.1"
"-Lc:/mingw32/bin/../lib/gcc"
"-Lc:/mingw32/bin/../lib/gcc/mingw32/4.6.1/../../../../mingw32/lib"
"-Lc:/mingw32/bin/../lib/gcc/mingw32/4.6.1/../../.."
"obj\Release\fltk-hello.o" "C:\MinGW32\lib\libfltk.a"
"C:\MinGW32\lib\libgdi32.a" "C:\MinGW32\lib\libole32.a"
"C:\MinGW32\lib\libuuid.a" "C:\MinGW32\lib\libcomdlg32.a"
"C:\MinGW32\lib\libcomctl32.a" "-Bstatic" "-lstdc++" "-Bdynamic"
"-lmingw32" "-lgcc" "-lmoldname" "-lmingwex" "-lmsvcrt" "-ladvapi32"
"-lshell32" "-luser32" "-lkernel32" "-lmingw32" "-lgcc" "-lmoldname"
"-lmingwex" "-lmsvcrt"
"c:/mingw32/bin/../lib/gcc/mingw32/4.6.1/crtend.o"

现在,这部分

"-Bstatic" "-lstdc++"

明确表示,stdc++ 是静态链接的。我还可以在进程资源管理器中验证加载的 dll 不包含 libstdc++-6.dll。

到目前为止我所尝试的

我查看了代码块构建设置页面,但一无所获。 Codeblock 提供了向 g++ 添加参数的可能性。不幸的是,我找不到明确的 gcc 参数来打开 libstdc++ 的动态链接,http://gcc.gnu.org/onlinedocs/gcc/Link-Options.html 的文档说

如果 libstdc++ 可用作共享库,并且 -static 选项 未使用,则此链接针对 libstdc++ 的共享版本。

那么,我怎样才能让它动态链接到 stdc++?

【问题讨论】:

    标签: c++ gcc linker g++ codeblocks


    【解决方案1】:

    最后,我找到了解决方案。一个必须添加

    -shared-libstdc++
    

    链接器选项。现在它动态链接 stdc++ 库。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-30
      • 1970-01-01
      • 2023-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多