libstdc ++-不使用qmake静态链接

完整的adnan

我在Debian 7上编译了我的库的动态和静态版本。我的用户想在RHEL6上使用该库,因此在阅读了很多文章之后,似乎静态链接libstdc ++应该可以解决此问题。

我正在使用qmake,因此在.pro我添加文件中

unix: QMAKE_CXXFLAGS_RELEASE += -static-libstdc++ -static-libgcc -fvisibility=hidden -w

然后我执行以下命令:

qmake MyLibrary.pro -spec linux-g++-64 "CONFIG += release"

和输出是

g++ -c -m64 -pipe -O2 -static-libstdc++ -static-libgcc -fvisibility=hidden -w -Wall -W -D_REENTRANT -fPIC -DMYLIBRARY_LIBRARY -DQT_NO_DEBUG -DQT_PLUGIN -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/qt4 -IMyLibrary/Curl/include -I. -o LexAbstraction.o MyLibrary/LexAbstraction.cpp
g++ -c -m64 -pipe -O2 -static-libstdc++ -static-libgcc -fvisibility=hidden -w -Wall -W -D_REENTRANT -fPIC -DMYLIBRARY_LIBRARY -DQT_NO_DEBUG -DQT_PLUGIN -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/qt4 -IMyLibrary/Curl/include -I. -o MyLibrary.o MyLibrary/MyLibrary.cpp
g++ -c -m64 -pipe -O2 -static-libstdc++ -static-libgcc -fvisibility=hidden -w -Wall -W -D_REENTRANT -fPIC -DMYLIBRARY_LIBRARY -DQT_NO_DEBUG -DQT_PLUGIN -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/qt4 -IMyLibrary/Curl/include -I. -o LexBotan.o MyLibrary/LexBotan.cpp
g++ -c -m64 -pipe -O2 -static-libstdc++ -static-libgcc -fvisibility=hidden -w -Wall -W -D_REENTRANT -fPIC -DMYLIBRARY_LIBRARY -DQT_NO_DEBUG -DQT_PLUGIN -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/qt4 -IMyLibrary/Curl/include -I. -o LexCrypter.o MyLibrary/LexCrypter.cpp
g++ -c -m64 -pipe -O2 -static-libstdc++ -static-libgcc -fvisibility=hidden -w -Wall -W -D_REENTRANT -fPIC -DMYLIBRARY_LIBRARY -DQT_NO_DEBUG -DQT_PLUGIN -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/qt4 -IMyLibrary/Curl/include -I. -o LexHelper.o MyLibrary/LexHelper.cpp
rm -f libMyLibrary.so
g++ -m64 -Wl,-O1 -shared -o libMyLibrary.so LexAbstraction.o MyLibrary.o LexBotan.o LexCrypter.o LexHelper.o   -L/usr/lib/x86_64-linux-gnu -lpthread

但是当我执行

ldd -v libMyLibrary.so | grep GLIBCXX

它给出以下输出:

libstdc++.so.6 (GLIBCXX_3.4.15) => /usr/lib/x86_64-linux-gnu/libstdc++.so.6
libstdc++.so.6 (GLIBCXX_3.4.9) => /usr/lib/x86_64-linux-gnu/libstdc++.so.6
libstdc++.so.6 (GLIBCXX_3.4) => /usr/lib/x86_64-linux-gnu/libstdc++.so.6
迈克·金汉

-static-libstdc++-static-libgcc是链接选项,但是您将它们传递给编译(忽略它们)而不是链接。

使用C ++编译选项QMAKE_CXXFLAGS_{RELEASE|DEBUG}链接选项进入QMAKE_LFLAGS_{RELEASE|DEBUG}

-fvisibility 是一个编译选项,因此应保留在 QMAKE_CXXFLAGS_RELEASE

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

libstdc ++-不使用qmake静态链接

来自分类Dev

使用clang的静态链接libstdc ++

来自分类Dev

g ++静态链接到libstdc ++。a错误

来自分类Dev

是否可以静态链接libstdc ++并包装memcpy?

来自分类Dev

如何使用 llvm lld 链接 libstdc++

来自分类Dev

MinGW,如何避免链接静态完整的 libstdc++

来自分类Dev

强制或禁止使用特定的次要版本的libstdc ++

来自分类Dev

使用哈希样式SYSV编译libstdc ++

来自分类Dev

CMake:针对libgcc和libstdc ++静态链接到共享库中

来自分类Dev

当其他链接的库将stdc ++链接为动态时,如何将libstdc ++链接设置为静态?

来自分类Dev

libtool:链接:警告:... / libstdc ++。la似乎已移动

来自分类Dev

在使用libstdc ++调试期间强制使用std :: atomic内部的锁

来自分类Dev

如何使用dtrace打印libstdc ++字符串内容

来自分类Dev

什么时候需要使用-stdlib = libstdc ++标志?

来自分类Dev

在构建CMake时使用非默认libstdc ++吗?

来自分类Dev

如何指定要使用的libstdc ++。so.6

来自分类Dev

Clang无法使用libstdc ++识别std :: shared_ptr

来自分类Dev

libstdc ++中允许使用不兼容的函数类型吗?

来自分类Dev

如果未使用 -static-libstdc++ 编译,MinGW 会崩溃

来自分类Dev

如果在多个共享库中调用并且启用了libstdc ++静态链接,则C ++流变得很糟糕

来自分类Dev

在python扩展名(.so)中同时链接到libgfortran和libstdc ++

来自分类Dev

未在文件libstdc ++。so.6中定义GLIBCXX_3.4.21,具有链接时间参考

来自分类Dev

嵌入式Linux中链接“ libstdc ++”库的操作已中断

来自分类Dev

/sbin/ldconfig.real:/usr/lib/libstdc++.so.5不是符号链接

来自分类Dev

mv:无法打开共享库文件“ libstdc ++。so.6”:符号链接嵌套太大

来自分类Dev

获取指向成员std :: string :: size的指针无法与libc ++链接,但可以与libstdc ++一起使用

来自分类Dev

使用-static-libgcc编译-static-libstdc ++仍会导致对libc.so的动态依赖

来自分类Dev

使用Lambda构造std :: function时libstdc ++和libc ++之间的行为不同

来自分类Dev

如果同一系统上有多个GCC,则使用哪个版本的libstdc ++。so

Related 相关文章

  1. 1

    libstdc ++-不使用qmake静态链接

  2. 2

    使用clang的静态链接libstdc ++

  3. 3

    g ++静态链接到libstdc ++。a错误

  4. 4

    是否可以静态链接libstdc ++并包装memcpy?

  5. 5

    如何使用 llvm lld 链接 libstdc++

  6. 6

    MinGW,如何避免链接静态完整的 libstdc++

  7. 7

    强制或禁止使用特定的次要版本的libstdc ++

  8. 8

    使用哈希样式SYSV编译libstdc ++

  9. 9

    CMake:针对libgcc和libstdc ++静态链接到共享库中

  10. 10

    当其他链接的库将stdc ++链接为动态时,如何将libstdc ++链接设置为静态?

  11. 11

    libtool:链接:警告:... / libstdc ++。la似乎已移动

  12. 12

    在使用libstdc ++调试期间强制使用std :: atomic内部的锁

  13. 13

    如何使用dtrace打印libstdc ++字符串内容

  14. 14

    什么时候需要使用-stdlib = libstdc ++标志?

  15. 15

    在构建CMake时使用非默认libstdc ++吗?

  16. 16

    如何指定要使用的libstdc ++。so.6

  17. 17

    Clang无法使用libstdc ++识别std :: shared_ptr

  18. 18

    libstdc ++中允许使用不兼容的函数类型吗?

  19. 19

    如果未使用 -static-libstdc++ 编译,MinGW 会崩溃

  20. 20

    如果在多个共享库中调用并且启用了libstdc ++静态链接,则C ++流变得很糟糕

  21. 21

    在python扩展名(.so)中同时链接到libgfortran和libstdc ++

  22. 22

    未在文件libstdc ++。so.6中定义GLIBCXX_3.4.21,具有链接时间参考

  23. 23

    嵌入式Linux中链接“ libstdc ++”库的操作已中断

  24. 24

    /sbin/ldconfig.real:/usr/lib/libstdc++.so.5不是符号链接

  25. 25

    mv:无法打开共享库文件“ libstdc ++。so.6”:符号链接嵌套太大

  26. 26

    获取指向成员std :: string :: size的指针无法与libc ++链接,但可以与libstdc ++一起使用

  27. 27

    使用-static-libgcc编译-static-libstdc ++仍会导致对libc.so的动态依赖

  28. 28

    使用Lambda构造std :: function时libstdc ++和libc ++之间的行为不同

  29. 29

    如果同一系统上有多个GCC,则使用哪个版本的libstdc ++。so

热门标签

归档