我目前正在尝试编译 libxml2在 Solaris 上。当我运行源代码提供的 ./configure 脚本时,会自动使用 gcc 和 g++ 编译器。但是,我想使用 cc 和 CC 编译器。所以我跑:
./configure CC=cc CXX=CC
它有效,但是当我运行时“make”,我收到一些错误,导致无法生成库。
当使用 gcc 和 g++ 时,一切顺利,没有错误,所以我想知道:我可以使用 gcc/g++ 生成的库,就像我使用 cc/CC 连续生成它们一样吗?
在 Solaris 上使用 cc 生成的库与使用 gcc 生成的相同库有什么区别?
您可以使用gcc
or cc
C编译器几乎可以互换。
你可以混合g++
and CC
C++ 编译器以某些方式,但仅限于 x86 Solaris 并且如果您CC
编译器足够新,可以-compat=g
可用选项。
The GNU g++
和 Solaris 工作室CC
C++ 编译器默认使用完全不同的 ABI 和 C++ 运行时库。在 x86 Solaris 平台上,较新的版本(从版本 12 开始?,如果我没记错的话)提供了-compat=g
使用 g++ ABI 和运行时库的选项。这工作室12.4CC编译器添加了一个-std=v option https://docs.oracle.com/cd/E37069_01/html/E37075/bkamw.html#OSSCPgnaof选择不同版本的 g++ 或 Sun C++ ABI 和运行时库:
c++03(零-3,不是哦-3)
相当于-compat=g
选项。它选择C++ 03方言和g++ ABI;它与 Solaris 和 Linux 上的 g++ 二进制兼容
设置__SUNPRO_CC_COMPAT
预处理器宏为“G”。
c++11
选择 C++ 11 方言和 g++ 二进制兼容性。它设置了__SUNPRO_CC_COMPAT preprocessor
宏为“G”。
c++0x(零-x,不是哦-x)
相当于c++11。
and
The -std=c++03
提供与 gcc/g++ 编译器的兼容性
所有 Oracle Solaris 和 Linux 平台。
With -std=c++03
,二进制兼容性仅扩展到共享
(动态或 .so)库,而不是单个 .o 文件或存档 (.a)
图书馆。使用的 gcc 头文件和库是由
编译器,而不是系统上安装的 gcc 版本。
请注意,Studio 12.4CC
编译器使用g++
与捆绑提供的头文件和库CC
编译器本身。 12.3 及更早版本使用g++
系统上安装的标头和库/usr/sfw
.
在 SPARC Solaris 上,您必须使用g++
or CC
对于整个应用程序。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)