我已成功将GNU GCC-9.1.0成功编译到我的Sun / Oracle SPARC服务器上的Solaris 10 SPARC版操作系统中。 但是,我不得不将libgmp.so,libmfr.so和libmpc.so的静态库文件复制到在“ gmake”过程中创建的以下目录中 gcc-9.1.0 / host-sparc-sun-solaris2.10 / gcc gcc-9.1.0 / host-sparc-sun-solaris2.10 / prev-gcc
当我尝试使用'./configure'命令配置包含C代码源文件的任何tarball归档文件时,我现在遇到问题。当我输入'./configure'时,我收到一条错误消息,提示'C编译器不起作用,有关详细信息,请参见config.log文件。我已将生成的相关config.log文件上传到以下URL。它提到缺少名为'libmpc.so.3的静态库文件,但是该库文件位于/ usr / local / lib目录中。我该如何解决这种情况。我将不胜感激
configure:2912: gcc -v >&5
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/sparc-sun-solaris2.10/9.1.0/lto-wrapper
Target: sparc-sun-solaris2.10
Configured with: ./configure --enable-obsolete --with-gmp-lib=/usr/local/lib --with-mpfr-lib=/usr/local/lib --with-mpc-lib=/usr/local/lib
...[snip]...
configure:2975: gcc conftest.c >&5
ld.so.1: cc1: fatal: libmpc.so.3: open failed: No such file or directory
gcc: fatal error: Killed signal terminated program cc1
compilation terminated.
configure:2978: $? = 1
configure:3016: result:
configure: failed program was:
| /* confdefs.h. */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| /* end confdefs.h. */
|
| int
| main ()
| {
|
| ;
| return 0;
| }
configure:3023: error: C compiler cannot create executables
(完整的config.log位于http://tab140.freewebspace.com/config-gcc9.txt)
答案 0 :(得分:2)
cc1
(编译器适当的可执行文件)取决于动态libmpc.so.3
库。
请参见
ldd `gcc --print-file-name cc1`
它应该向您显示未找到mpc和其他库。这是因为/usr/local/lib
不在您的运行时共享库路径中,因此您有责任确保它位于。
一种选择是暂时将其放置在其中:尝试
LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH ldd `gcc --print-file-name cc1`
如果第二个输出中没有“找不到”消息,则可以在所有涉及gcc
调用的命令(例如./configure
,gmake
等)前面加上{ {1}}。另外,您可以LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
,但这仍然仅适用于当前的shell会话。要使更改永久生效,您可以在配置文件中添加导出命令(例如,用于bash的export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
文件,我不知道您使用的是什么shell)。
GCC有一个installation manual,其中记录了~/.bashrc
选项:
--with-mpc-lib