Linker 使用studio 12.5在Solaris上链接时使用多个libgcc_库

Linker 使用studio 12.5在Solaris上链接时使用多个libgcc_库,linker,solaris-studio,Linker,Solaris Studio,我正在尝试迁移到DeveloperStudio 12.5并启用C++11选项。我的软件使用Oracle在/usr/sfw中提供的库链接openssl。这似乎依赖于一个旧的LIGBCCs。所以现在使用的C++ 11 STL。因此,我得到以下信息: CC -o binary -B direct -z origin -std=c++11 object_files.o -Lblah/lib -R\$ORIGIN/../lib -lotherlib -L/usr/sfw/lib -R/usr/sfw/li

我正在尝试迁移到DeveloperStudio 12.5并启用C++11选项。我的软件使用Oracle在/usr/sfw中提供的库链接openssl。这似乎依赖于一个旧的LIGBCCs。所以现在使用的C++ 11 STL。因此,我得到以下信息:

CC -o binary -B direct -z origin -std=c++11 object_files.o -Lblah/lib -R\$ORIGIN/../lib -lotherlib -L/usr/sfw/lib -R/usr/sfw/lib -lcrypto -lsocket
unused $ADDVERS specification from file '/opt/developerstudio12.5/lib/compilers/CC-gcc/gcc_version.map' for object 'libgcc_s.so'
version(s):
        GCC_4.2.0
两个libgcc_.so实例以某种方式共存于一个二进制文件中,其中libcrypto引用一个,STL引用另一个?查看Oracle链接器和库文档,可以看到一些有前途的选项,如-B组,但这可能只适用于dlopen


我意识到我可以重新编译openssl(或者可能是libressl),但最好使用操作系统中的openssl,我的同事认为Sun的构建利用了SPARC上的硬件加密功能。

您是否设法消除了错误消息?否。错误消息仍然是个问题。在编译时尝试使用开关-m64。不幸的是,CC-m64-std=c++11 filename.cpp切换代码生成64位不是一个选项。我被32位依赖项卡住了。您是否设法消除了错误消息?否。错误消息仍然是一个问题。请在编译时尝试使用开关-m64。不幸的是,CC-m64-std=c++11 filename.cpp切换代码生成64位不是一个选项。我被困在32位依赖项中。