巨大八爪鱼吧 关注:33贴子:537
  • 4回复贴,共1

瑞芯微rv1106成功运行gcc14.2本地编译器

只看楼主收藏回复

【测试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下再回车,重新进入命令行。


IP属地:北京来自Android客户端1楼2025-06-23 22:49回复
    [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,会导致很多软件包无法正常编译。


    IP属地:北京来自Android客户端2楼2025-06-23 22:50
    回复
      2025-12-04 07:59:55
      广告
      不感兴趣
      开通SVIP免广告
      目前,arm官网的交叉编译器最新版本为14.2,编译器的名字叫arm-gnu-toolchain-14.2.rel1-x86_64-arm-none-linux-gnueabihf。用这个交叉编译器交叉编译gnu官网的gcc14.2代码,可以成功编译出能在幸狐rv1106板子上运行的gcc14.2本地编译器。
      板子使用busybox根文件系统的话,要把交叉编译器里面的arm-gnu-toolchain-14.2.rel1-x86_64-arm-none-linux-gnueabihf/arm-none-linux-gnueabihf/libc文件夹里面的所有内容复制到板子的根目录,这样交叉编译器编译的程序才能在板子上运行,不会提示not found错误。
      编译出的gcc14.2本地编译器在板子上使用前必须要设置export C_INCLUDE_PATH=/usr/include环境变量,否则很多linux软件包无法编译成功。


      IP属地:北京来自Android客户端3楼2025-06-23 23:19
      回复
        在fedora42上用arm-gnu-toolchain-14.2交叉编译器编译gcc14.2、gdb14.2和make4.4:https://zh.purasbar.com/post.php?t=32816&version=desktop


        IP属地:北京来自Android客户端4楼2025-06-23 23:27
        回复
          在瑞芯微RV1106板子上用gcc14.2本地编译安装apache2.4.63,开启http2和tls1.3,并且https支持XP系统的IE6-8浏览器:https://zh.purasbar.com/post.php?p=1&t=32825








          IP属地:北京来自Android客户端5楼2025-06-24 23:26
          回复