aarch64-linux-gnu-gcc-8 test.c -static运行会报错undefined reference to `__aarch64_cas4_acq'是什么原因呢
时间: 2023-09-09 22:14:22 浏览: 575
这个错误提示是因为链接器找不到__aarch64_cas4_acq函数的定义,导致链接失败。__aarch64_cas4_acq是GCC内建的一个原子操作函数,用于执行64位CAS操作。在编译时需要添加-latomic选项来链接GCC提供的原子操作库libatomic。因此,你需要在编译时加上-latomic选项来解决该错误,命令如下:
aarch64-linux-gnu-gcc-8 test.c -static -latomic
相关问题
/work/bsp/rk356x/buildroot/output/rockchip_rk3568/host/lib/gcc/aarch64-buildroot-linux-gnu/9.3.0/../../../../aarch64-buildroot-linux-gnu/bin/ld: /work/bsp/rk356x/buildroot/output/rockchip_rk3568/host/aarch64-buildroot-linux-gnu/sysroot/usr/lib/../lib64/crt1.o: in function `_start': static-reloc.c:(.text+0x18): undefined reference to `main' /work/bsp/rk356x/buildroot/output/rockchip_rk3568/host/lib/gcc/aarch64-buildroot-linux-gnu/9.3.0/../../../../aarch64-buildroot-linux-gnu/bin/ld: static-reloc.c:(.text+0x1c): undefined reference to `main' /work/bsp/rk356x/buildroot/output/rockchip_rk3568/host/lib/gcc/aarch64-buildroot-linux-gnu/9.3.0/../../../../aarch64-buildroot-linux-gnu/bin/ld: static-reloc.c:(.text+0x20): undefined reference to `main' /work/bsp/rk356x/buildroot/output/rockchip_rk3568/host/lib/gcc/aarch64-buildroot-linux-gnu/9.3.0/../../../../aarch64-buildroot-linux-gnu/bin/ld: static-reloc.c:(.text+0x24): undefined reference to `main' collect2: error: ld returned 1 exit status Makefile:236: recipe for target 'quazip' failed make: *** [quazip] Error 1
这个错误是因为链接器找不到名为“main”的函数。这通常是因为缺少主函数而导致的。请检查您的代码,确保其中有一个名为“main”的函数,它是程序的入口点。如果您的代码中确实有一个名为“main”的函数,则可能是编译器或编译选项的问题。您可以尝试检查编译器选项,确保它们正确设置,以便正确地生成可执行文件。
/opt/linux/x86-arm/aarch64-mix210-linux/host_bin/../lib/gcc/aarch64-linux-gnu/7.3.0/../../../../aarch64-linux-gnu/bin/ld: pullflowmonitor.o: in function `PullFlowMonitor::handleYolov8Model(void*, _ImagePairStruct*)': pullflowmonitor.cpp:(.text+0x3950): undefined reference to `ss_csc' /opt/linux/x86-arm/aarch64-mix210-linux/host_bin/../lib/gcc/aarch64-linux-gnu/7.3.0/../../../../aarch64-linux-gnu/bin/ld: pullflowmonitor.cpp:(.text+0x3a20): undefined reference to `strideRgb24' /opt/linux/x86-arm/aarch64-mix210-linux/host_bin/../lib/gcc/aarch64-linux-gnu/7.3.0/../../../../aarch64-linux-gnu/bin/ld: pullflowmonitor.cpp:(.text+0x3a68): undefined reference to `ss_resize' collect2: error: ld returned 1 exit
这是一个链接错误,编译器找不到 `ss_csc`、`strideRgb24`、`ss_resize` 这三个函数的定义。可能原因包括:
1. 编译器没有链接对应的库文件,需要确认是否正确链接了相关的库文件。
2. 编译器没有找到这些函数的实现,需要确认这些函数是否存在、是否被正确地实现了。
3. 函数名拼写错误或者函数声明和实现不一致,需要确认函数名是否正确、函数声明和实现是否匹配。
需要进一步查看代码和编译输出来确定问题的具体原因。
阅读全文