相关疑难解决方法(0)

features.h标题的目的是什么?

features.h标题的目的是什么?为什么以及何时可以在我的代码中使用它?

它是否定义了系统支持的源功能?或者它是否定义了一些必须根据其他定义定义的其他内容?

unix linux posix

13
推荐指数
2
解决办法
5651
查看次数

将g ++ 4.8链接到libstdc ++

我在桌面上下载并构建了gcc 4.8.1,运行64位Ubuntu 12.04.我是根据文档推荐的源代码和命令构建的

../../gcc-4.8.1/configure --prefix=$HOME --program-suffix=-4.8
make
make -k check
make install
Run Code Online (Sandbox Code Playgroud)

它似乎通过了所有测试,并且我将所有内容安装到我的主目录中,后缀为-4.8,以区别于系统gcc,即版本4.6.3.

不幸的是,当我使用g ++ - 4.8编译c ++程序时,它链接到系统libc和libstdc ++,而不是从gcc-4.8.1编译的新程序.我下载并构建了gcc 4.8,因为我想在标准库中使用新的C++ 11功能,所以这种行为绝对不是我想要的.我该怎么做才能让gcc-4.8自动链接到它附带的标准库而不是系统标准库?

c++ linux gcc g++ libstdc++

9
推荐指数
2
解决办法
9425
查看次数

如何查看libc版本?

这个问题与为什么 pclose 提前返回有关?。我想知道libc交叉编译的可执行文件使用的是哪个版本。如下所述,存在一些限制,使得检查特定 gcc 编译器的 glibc 版本中的答案不适用。

  • 检查libc版本的一种建议方法是使用gnu_get_libc_version()中声明的函数gnu/libc-version.h。我的跨工具链不包括libc-version.h.

  • 另一个建议的解决方案是使用该-print-file-name gcc选项。链接问题中的这个答案完全不适合我:

$ /path/to/toolchains/ARM-cortex-m3-4.4/bin/arm-uclinuxeabi-gcc -print-file-name=libc.so
libc.so
$
$ /path/to/toolchains/ARM-cortex-m3-4.4/bin/arm-uclinuxeabi-gcc -print-file-name=foo.bar
foo.bar
$ # I really do not have a foo.bar file in existence
Run Code Online (Sandbox Code Playgroud)
  • 另一个建议的解决方案是直接执行ldd --version. 我的目标平台没有ldd
$ ldd
sh: can't execute 'ldd': No such file or directory
Run Code Online (Sandbox Code Playgroud)
  • 另一个建议的解决方案是查看__GLIBC____GLIBC_MINOR__- 但这些似乎也来自libc-version.h,它不存在于我的跨工具链中,如上所述。

我的跨工具链似乎只提供libc.a,而不提供libc.so
我尝试运行它libc.a …

c libc cross-compiling

4
推荐指数
1
解决办法
1万
查看次数

如何修复 C 中的错误或警告:“函数‘inet_aton’的隐式声明;您的意思是‘inet_pton’吗?”

我无法将inet_aton()ASCII IP 地址转换"192.168.0.1"struct in_addr字节顺序的地址,因为我无法编译代码。

\n

我正在处理这个文件:socket__geeksforgeeks_udp_server_GS_edit_GREAT.c

\n

这是我的构建命令:

\n
gcc -Wall -Wextra -Werror -O3 -std=c17 \\\nsocket__geeksforgeeks_udp_server_GS_edit_GREAT.c -o bin/server \\\n-lm && bin/server\n
Run Code Online (Sandbox Code Playgroud)\n

这是我的命令和错误输出:

\n
eRCaGuy_hello_world/c$ gcc -Wall -Wextra -Werror -O3 -std=c17 socket__geeksforgeeks_udp_server_GS_edit_GREAT.c -o bin/server -lm && bin/server\nsocket__geeksforgeeks_udp_server_GS_edit_GREAT.c: In function \xe2\x80\x98main\xe2\x80\x99:\nsocket__geeksforgeeks_udp_server_GS_edit_GREAT.c:159:15: error: implicit declaration of function \xe2\x80\x98inet_aton\xe2\x80\x99; did you mean \xe2\x80\x98inet_pton\xe2\x80\x99? [-Werror=implicit-function-declaration]\n     retcode = inet_aton("127.0.0.1", &addr_server.sin_addr);\n               ^~~~~~~~~\n               inet_pton\ncc1: all warnings being treated as errors\n
Run Code Online (Sandbox Code Playgroud)\n

我要修复的部分是:

\n
implicit declaration of function \xe2\x80\x98inet_aton\xe2\x80\x99; did you …
Run Code Online (Sandbox Code Playgroud)

c gcc glibc gcc-warning

4
推荐指数
1
解决办法
4843
查看次数

标签 统计

c ×2

gcc ×2

linux ×2

c++ ×1

cross-compiling ×1

g++ ×1

gcc-warning ×1

glibc ×1

libc ×1

libstdc++ ×1

posix ×1

unix ×1