設置 | 登錄 | 註冊

作者共發了2篇帖子。

在fedora42上用arm-gnu-toolchain-14.2交叉编译器编译gcc14.2、gdb14.2和make4.4

2樓 巨大八爪鱼 2025-6-23 18:55
【测试gcc编译环境】
mkdir -p ~/test/ngroups_max
cd ~/test/ngroups_max

vi ngroups_max.c
*******文件内容开始*******
#include <limits.h>
#include <stdio.h>

int main(void)
{
        printf("NGROUPS_MAX=%d\n", NGROUPS_MAX);
        printf("MB_LEN_MAX=%d\n", MB_LEN_MAX);
        return 0;
}
*******文件内容结束*******

echo "all: ngroups_max" > Makefile
make CC=gcc C_INCLUDE_PATH=/usr/include
./ngroups_max
要看到输出
NGROUPS_MAX=65536
MB_LEN_MAX=16
才对。
如果编译时提示ngroups_max.c:6:36: error: 'NGROUPS_MAX' undeclared (first use in this function),或者运行时输出MB_LEN_MAX=1,那就是没设置好C_INCLUDE_PATH环境变量。

vi /etc/profile
添加
export CC=gcc
export CXX=g++
export C_INCLUDE_PATH=/usr/include
保存文件后exit下再回车,重新进入命令行。
巨大八爪鱼 2025-6-23 19:40
[root@luckfox-rv1106 ~/software/sudo-1.9.16p2]# ls -l $(find /usr -name limits.h
)
-rw-r--r--    1 root     root          5706 Jun 23 02:24 /usr/include/limits.h
-rw-r--r--    1 root     root           937 Jun 23 02:24 /usr/include/linux/limits.h
-rw-r--r--    1 root     root          1256 Jun 23 02:18 /usr/local/include/c++/14.2.0/tr1/limits.h
-rw-r--r--    1 root     root          4826 Jun 23 01:47 /usr/local/lib/gcc/arm-none-linux-gnueabihf/14.2.0/include/limits.h
-rw-r--r--    1 root     root          4826 Jun 23 02:17 /usr/local/lib/gcc/arm-none-linux-gnueabihf/14.2.0/install-tools/include/limits.h
[root@luckfox-rv1106 ~/software/sudo-1.9.16p2]#

如果不设置C_INCLUDE_PATH=/usr/include的话,#include <limits.h>包含的是/usr/local/lib/gcc/arm-none-linux-gnueabihf/14.2.0/include/limits.h这个文件,里面#define MB_LEN_MAX 1,会导致很多软件包无法正常编译。

內容轉換:

回覆帖子
內容:
用戶名: 您目前是匿名發表。
驗證碼:
看不清?換一張
©2010-2025 Purasbar Ver3.0 [手機版] [桌面版]
除非另有聲明,本站採用知識共享署名-相同方式共享 3.0 Unported許可協議進行許可。