首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Solaris 8的gcc没有在NetBSD上搜索头文件。

Solaris 8的gcc没有在NetBSD上搜索头文件。
EN

Stack Overflow用户
提问于 2022-04-21 02:13:02
回答 1查看 95关注 0票数 1

我在Solaris 8 VM上安装了一个gcc 2.95.1二进制文件。对于一个实验,我试图让它在NetBSD环境中工作。但是,我无法在任何涉及#include指令的程序上运行编译阶段,因为即使没有指定-I标志,二进制程序似乎也不会寻找库。我现在尝试测试的示例是一个简单的Hello:

代码语言:javascript
复制
#include <stdio.h>
#include <stdlib.h>
int main() {
    printf("Hello World!\n");
    exit(0);
}

在Solaris 8机器上运行gcc -I some_random_directory -v -o hello_world.o -c hello_world.c会产生以下结果:

代码语言:javascript
复制
Reading specs from /usr/local/lib/gcc-lib/sparc-sun-solaris2.8/2.95.1/specs
gcc version 2.95.1 19990816 (release)
 /usr/local/lib/gcc-lib/sparc-sun-solaris2.8/2.95.1/cpp -lang-c -v -I some_random_directory -D__GNUC__=2 -D__GNUC_MINOR__=95 -Dsparc -Dsun -Dunix -D__svr4__ -D__SVR4 -D__sparc__ -D__sun__ -D__unix__ -D__svr4__ -D__SVR4 -D__sparc -D__sun -D__unix -Asystem(unix) -Asystem(svr4) -D__GCC_NEW_VARARGS__ -Acpu(sparc) -Amachine(sparc) hello_world.c /var/tmp/ccA6aEZ8.i
GNU CPP version 2.95.1 19990816 (release) (sparc)
#include "..." search starts here:
#include <...> search starts here:
 some_random_directory
 /usr/local/include
 /usr/local/lib/gcc-lib/sparc-sun-solaris2.8/2.95.1/../../../../sparc-sun-solaris2.8/include
 /usr/local/lib/gcc-lib/sparc-sun-solaris2.8/2.95.1/include
 /usr/include
End of search list.
The following default directories have been omitted from the search path:
 /usr/local/lib/gcc-lib/sparc-sun-solaris2.8/2.95.1/../../../../include/g++-3
End of omitted list.
 /usr/local/lib/gcc-lib/sparc-sun-solaris2.8/2.95.1/cc1 /var/tmp/ccA6aEZ8.i -quiet -dumpbase hello_world.c -version -o /var/tmp/ccUTCLhe.s
GNU C version 2.95.1 19990816 (release) (sparc-sun-solaris2.8) compiled by GNU C version 2.95.1 19990816 (release).

使用Solaris 8 gcc在NetBSD上运行相同的编译命令会产生以下结果:

代码语言:javascript
复制
Reading specs from /usr/local/lib/gcc-lib/sparc-sun-solaris2.8/2.95.1/specs
gcc version 2.95.1 19990816 (release)
 /usr/local/lib/gcc-lib/sparc-sun-solaris2.8/2.95.1/cpp -lang-c -v -I some_random_directory -D__GNUC__=2 -D__GNUC_MINOR__=95 -Dsparc -Dsun -Dunix -D__svr4__ -D__SVR4 -D__sparc__ -D__sun__ -D__unix__ -D__svr4__ -D__SVR4 -D__sparc -D__sun -D__unix -Asystem(unix) -Asystem(svr4) -D__GCC_NEW_VARARGS__ -Acpu(sparc) -Amachine(sparc) hello_world.c /var/tmp/ccFedUPd.i
GNU CPP version 2.95.1 19990816 (release) (sparc)
#include "..." search starts here:
#include <...> search starts here:
 .
 .
 .
 .
 .
End of search list.
The following default directories have been omitted from the search path:
 /usr/local/lib/gcc-lib/sparc-sun-solaris2.8/2.95.1/../../../../include/g++-3
End of omitted list.
hello_world.c:1: stdio.h: No such file or directory
hello_world.c:2: stdlib.h: No such file or directory

起初,我以为gcc只是忽略了-I标志,但是其他搜索位置也没有出现在第二个输出中。这到底是怎么回事?

EN

回答 1

Stack Overflow用户

发布于 2022-04-29 07:18:54

即使编译成功,工具链也不太可能产生可用的可执行文件。然而,为了解决原来的问题..。

您需要重写编译器的系统包含和库路径的概念。为此,您可以使用-nostdinc-isystem-isysroot--sysroot命令行选项。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71948152

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档