Xilinx Vitis arm-xilinx-eabi-gcc.exe: error: *.c: Invalid argument

本文档详细记录了在使用Vitis 2021.1版本时遇到的编译问题,包括Makefile的修改以及如何解决由于缺少qemu_args.txt文件导致的启动错误。通过修改Makefile中的LIBSOURCES变量,添加OBJECTS和ASSEMBLY_OBJECTS,并更新清理命令,成功解决了编译错误。同时,在指定目录下创建qemu_args.txt文件以消除QEMU启动时的错误。

This problem may be a bug of version 2021.1 only. Unfortunately, I'm just currently using this version.

After Build Project:

Find where this Makefile is through "make: Leaving directory" information. For me, it is located at  Zynq_CPU_wrapper_hw_platform_1\zynq_fsbl\zynq_fsbl_bsp\ps7_cortexa9_0\libsrc\rtl_multiplier_v1_0\src\Makefile (we assume Zynq_CPU_wrapper_hw_platform_1 is the platform name and is under the Vitis workspace folder). Locate this file, we see the following code:

COMPILER=
ARCHIVER=
CP=cp
COMPILER_FLAGS=
EXTRA_COMPILER_FLAGS=
LIB=libxil.a

RELEASEDIR=../../../lib
INCLUDEDIR=../../../include
INCLUDES=-I./. -I${INCLUDEDIR}

INCLUDEFILES=*.h
LIBSOURCES=*.c
OUTS = *.o

libs:
	echo "Compiling rtl_multiplier..."
	$(COMPILER) $(COMPILER_FLAGS) $(EXTRA_COMPILER_FLAGS) $(INCLUDES) $(LIBSOURCES)
	$(ARCHIVER) -r ${RELEASEDIR}/${LIB} ${OUTS}
	make clean

include:
	${CP} $(INCLUDEFILES) $(INCLUDEDIR)

clean:
	rm -rf ${OUTS}

According to

Drivers created in Vivado fail in Vitis 2021.1https://support.xilinx.com/s/question/0D52E00006ihQSXSA2/drivers-created-in-vivado-fail-in-vitis-2021175527 - Drivers created in

'Invoking: ARM v7 gcc linker' arm-none-eabi-gcc -mcpu=cortex-a9 -mfpu=vfpv3 -mfloat-abi=hard -Wl,-build-id=none -specs=Xilinx.spec -Wl,-T -Wl,../src/lscript.ld -LD:/vitiswork2024.1/system_wrapper/export/system_wrapper/sw/system_wrapper/standalone_ps7_cortexa9_0/bsplib/lib -o "qspi_Flash_test.elf" ./src/main.o -Wl,--start-group,-lxil,-lgcc,-lc,--end-group d:/xilinx2024.1/vitis/2024.1/gnu/aarch32/nt/gcc-arm-none-eabi/x86_64-oesdk-mingw32/usr/bin/arm-xilinx-eabi/../../libexec/arm-xilinx-eabi/gcc/arm-xilinx-eabi/12.2.0/ld.exe: ./src/main.o: in function `QspiFlashPolledExample': D:\vitiswork2024.1\qspi_Flash_test\Debug/../src/main.c:92: undefined reference to `FlashReadID' d:/xilinx2024.1/vitis/2024.1/gnu/aarch32/nt/gcc-arm-none-eabi/x86_64-oesdk-mingw32/usr/bin/arm-xilinx-eabi/../../libexec/arm-xilinx-eabi/gcc/arm-xilinx-eabi/12.2.0/ld.exe: D:\vitiswork2024.1\qspi_Flash_test\Debug/../src/main.c:94: undefined reference to `FlashQuadEnable' d:/xilinx2024.1/vitis/2024.1/gnu/aarch32/nt/gcc-arm-none-eabi/x86_64-oesdk-mingw32/usr/bin/arm-xilinx-eabi/../../libexec/arm-xilinx-eabi/gcc/arm-xilinx-eabi/12.2.0/ld.exe: D:\vitiswork2024.1\qspi_Flash_test\Debug/../src/main.c:96: undefined reference to `FlashErase' d:/xilinx2024.1/vitis/2024.1/gnu/aarch32/nt/gcc-arm-none-eabi/x86_64-oesdk-mingw32/usr/bin/arm-xilinx-eabi/../../libexec/arm-xilinx-eabi/gcc/arm-xilinx-eabi/12.2.0/ld.exe: D:\vitiswork2024.1\qspi_Flash_test\Debug/../src/main.c:99: undefined reference to `FlashWrite' d:/xilinx2024.1/vitis/2024.1/gnu/aarch32/nt/gcc-arm-none-eabi/x86_64-oesdk-mingw32/usr/bin/arm-xilinx-eabi/../../libexec/arm-xilinx-eabi/gcc/arm-xilinx-eabi/12.2.0/ld.exe: D:\vitiswork2024.1\qspi_Flash_test\Debug/../src/main.c:103: undefined reference to `FlashRead' collect2.exe: error: ld returned 1 exit status make[1]: *** [makefile:43: qspi_Flash_test.elf] Error 1 make: *** [makefile:34: all] Error 2
05-02
E:\1.work\24.10G\1.10G_IP\10G_GEV_Design_Package_MVDK_ZX5\FPGA\xgvrd-mvdk-zx5-n-20250212\vitis\xgvrd\Debug/../src/main.c:80: undefined reference to `eeprom_access_mode' e:/2.software/vivado2022/vitis/2022.2/gnu/aarch32/nt/gcc-arm-none-eabi/x86_64-oesdk-mingw32/usr/bin/arm-xilinx-eabi/../../libexec/arm-xilinx-eabi/gcc/arm-xilinx-eabi/11.2.0/real-ld.exe: E:\1.work\24.10G\1.10G_IP\10G_GEV_Design_Package_MVDK_ZX5\FPGA\xgvrd-mvdk-zx5-n-20250212\vitis\xgvrd\Debug/../src/main.c:80: undefined reference to `eeprom_access_mode' e:/2.software/vivado2022/vitis/2022.2/gnu/aarch32/nt/gcc-arm-none-eabi/x86_64-oesdk-mingw32/usr/bin/arm-xilinx-eabi/../../libexec/arm-xilinx-eabi/gcc/arm-xilinx-eabi/11.2.0/real-ld.exe: E:\1.work\24.10G\1.10G_IP\10G_GEV_Design_Package_MVDK_ZX5\FPGA\xgvrd-mvdk-zx5-n-20250212\vitis\xgvrd\Debug/../src/main.c:83: undefined reference to `gige_init' e:/2.software/vivado2022/vitis/2022.2/gnu/aarch32/nt/gcc-arm-none-eabi/x86_64-oesdk-mingw32/usr/bin/arm-xilinx-eabi/../../libexec/arm-xilinx-eabi/gcc/arm-xilinx-eabi/11.2.0/real-ld.exe: E:\1.work\24.10G\1.10G_IP\10G_GEV_Design_Package_MVDK_ZX5\FPGA\xgvrd-mvdk-zx5-n-20250212\vitis\xgvrd\Debug/../src/main.c:86: undefined reference to `gige_set_data_rates' e:/2.software/vivado2022/vitis/2022.2/gnu/aarch32/nt/gcc-arm-none-eabi/x86_64-oesdk-mingw32/usr/bin/arm-xilinx-eabi/../../libexec/arm-xilinx-eabi/gcc/arm-xilinx-eabi/11.2.0/real-ld.exe: E:\1.work\24.10G\1.10G_IP\10G_GEV_Design_Package_MVDK_ZX5\FPGA\xgvrd-mvdk-zx5-n-20250212\vitis\xgvrd\Debug/../src/main.c:93: undefined reference to `gige_set_gev_version' e:/2.software/vivado2022/vitis/2022.2/gnu/aarch32/nt/gcc-arm-none-eabi/x86_64-oesdk-mingw32/usr/bin/arm-xilinx-eabi/../../libexec/arm-xilinx-eabi/gcc/arm-xilinx-eabi/11.2.0/real-ld.exe: E:\1.work\24.10G\1.10G_IP\10G_GEV_Design_Package_MVDK_ZX5\FPGA\xgvrd-mvdk-zx5-n-20250212\vitis\xgvrd\Debug/../src/main.c:102: undefined reference to `gige_print_header' e:/2.software/vivado2022/vitis/2022.2/gnu/aarch32/nt/gcc-arm-none-eabi/x86_64-oesdk-mingw32/usr/bin/arm-xilinx-eabi/../../libexec/arm-xilinx-eabi/gcc/arm-xilinx-eabi/11.2.0/real-ld.exe: E:\1.work\24.10G\1.10G_IP\10G_GEV_Design_Package_MVDK_ZX5\FPGA\xgvrd-mvdk-zx5-n-20250212\vitis\xgvrd\Debug/../src/main.c:107: undefined reference to `gige_callback' e:/2.software/vivado2022/vitis/2022.2/gnu/aarch32/nt/gcc-arm-none-eabi/x86_64-oesdk-mingw32/usr/bin/arm-xilinx-eabi/../../libexec/arm-xilinx-eabi/gcc/arm-xilinx-eabi/11.2.0/real-ld.exe: E:\1.work\24.10G\1.10G_IP\10G_GEV_Design_Package_MVDK_ZX5\FPGA\xgvrd-mvdk-zx5-n-20250212\vitis\xgvrd\Debug/../src/main.c:138: undefined reference to `gige_get_auth_status' e:/2.software/vivado2022/vitis/2022.2/gnu/aarch32/nt/gcc-arm-none-eabi/x86_64-oesdk-mingw32/usr/bin/arm-xilinx-eabi/../../libexec/arm-xilinx-eabi/gcc/arm-xilinx-eabi/11.2.0/real-ld.exe: E:\1.work\24.10G\1.10G_IP\10G_GEV_Design_Package_MVDK_ZX5\FPGA\xgvrd-mvdk-zx5-n-20250212\vitis\xgvrd\Debug/../src/main.c:143: undefined reference to `gige_get_license_checksum' e:/2.software/vivado2022/vitis/2022.2/gnu/aarch32/nt/gcc-arm-none-eabi/x86_64-oesdk-mingw32/usr/bin/arm-xilinx-eabi/../../libexec/arm-xilinx-eabi/gcc/arm-xilinx-eabi/11.2.0/real-ld.exe: E:\1.work\24.10G\1.10G_IP\10G_GEV_Design_Package_MVDK_ZX5\FPGA\xgvrd-mvdk-zx5-n-20250212\vitis\xgvrd\Debug/../src/main.c:166: undefined reference to `mdio_read' e:/2.software/vivado2022/vitis/2022.2/gnu/aarch32/nt/gcc-arm-none-eabi/x86_64-oesdk-mingw32/usr/bin/arm-xilinx-eabi/../../libexec/arm-xilinx-eabi/gcc/arm-xilinx-eabi/11.2.0/real-ld.exe: ./src/network.o: in function `telnet_user_process': E:\1.work\24.10G\1.10G_IP\10G_GEV_Design_Package_MVDK_ZX5\FPGA\xgvrd-mvdk-zx5-n-20250212\vitis\xgvrd\Debug/../src/network.c:32: undefined reference to `telnet_send' e:/2.software/vivado2022/vitis/2022.2/gnu/aarch32/nt/gcc-arm-none-eabi/x86_64-oesdk-mingw32/usr/bin/arm-xilinx-eabi/../../libexec/arm-xilinx-eabi/gcc/arm-xilinx-eabi/11.2.0/real-ld.exe: ./src/user.o: in function `get_user_reg': E:\1.work\24.10G\1.10G_IP\10G_GEV_Design_Package_MVDK_ZX5\FPGA\xgvrd-mvdk-zx5-n-20250212\vitis\xgvrd\Debug/../src/user.c:105: undefined reference to `gige_get_gev_version' e:/2.software/vivado2022/vitis/2022.2/gnu/aarch32/nt/gcc-arm-none-eabi/x86_64-oesdk-mingw32/usr/bin/arm-xilinx-eabi/../../libexec/arm-xilinx-eabi/gcc/arm-xilinx-eabi/11.2.0/real-ld.exe: E:\1.work\24.10G\1.10G_IP\10G_GEV_Design_Package_MVDK_ZX5\FPGA\xgvrd-mvdk-zx5-n-20250212\vitis\xgvrd\Debug/../src/user.c:106: undefined reference to `gige_get_gev_version' e:/2.software/vivado2022/vitis/2022.2/gnu/aarch32/nt/gcc-arm-none-eabi/x86_64-oesdk-mingw32/usr/bin/arm-xilinx-eabi/../../libexec/arm-xilinx-eabi/gcc/arm-xilinx-eabi/11.2.0/real-ld.exe: E:\1.work\24.10G\1.10G_IP\10G_GEV_Design_Package_MVDK_ZX5\FPGA\xgvrd-mvdk-zx5-n-20250212\vitis\xgvrd\Debug/../src/user.c:109: undefined reference to `gige_get_auth_status' e:/2.software/vivado2022/vitis/2022.2/gnu/aarch32/nt/gcc-arm-none-eabi/x86_64-oesdk-mingw32/usr/bin/arm-xilinx-eabi/../../libexec/arm-xilinx-eabi/gcc/arm-xilinx-eabi/11.2.0/real-ld.exe: E:\1.work\24.10G\1.10G_IP\10G_GEV_Design_Package_MVDK_ZX5\FPGA\xgvrd-mvdk-zx5-n-20250212\vitis\xgvrd\Debug/../src/user.c:110: undefined reference to `gige_get_license_checksum' e:/2.software/vivado2022/vitis/2022.2/gnu/aarch32/nt/gcc-arm-none-eabi/x86_64-oesdk-mingw32/usr/bin/arm-xilinx-eabi/../../libexec/arm-xilinx-eabi/gcc/arm-xilinx-eabi/11.2.0/real-ld.exe: E:\1.work\24.10G\1.10G_IP\10G_GEV_Design_Package_MVDK_ZX5\FPGA\xgvrd-mvdk-zx5-n-20250212\vitis\xgvrd\Debug/../src/user.c:118: undefined reference to `eeprom_read_dword' e:/2.software/vivado2022/vitis/2022.2/gnu/aarch32/nt/gcc-arm-none-eabi/x86_64-oesdk-mingw32/usr/bin/arm-xilinx-eabi/../../libexec/arm-xilinx-eabi/gcc/arm-xilinx-eabi/11.2.0/real-ld.exe: ./src/user.o: in function `set_user_reg': E:\1.work\24.10G\1.10G_IP\10G_GEV_Design_Package_MVDK_ZX5\FPGA\xgvrd-mvdk-zx5-n-20250212\vitis\xgvrd\Debug/../src/user.c:161: undefined reference to `gige_set_acquisition_status' e:/2.software/vivado2022/vitis/2022.2/gnu/aarch32/nt/gcc-arm-none-eabi/x86_64-oesdk-mingw32/usr/bin/arm-xilinx-eabi/../../libexec/arm-xilinx-eabi/gcc/arm-xilinx-eabi/11.2.0/real-ld.exe: E:\1.work\24.10G\1.10G_IP\10G_GEV_Design_Package_MVDK_ZX5\FPGA\xgvrd-mvdk-zx5-n-20250212\vitis\xgvrd\Debug/../src/user.c:267: undefined reference to `gige_send_message' e:/2.software/vivado2022/vitis/2022.2/gnu/aarch32/nt/gcc-arm-none-eabi/x86_64-oesdk-mingw32/usr/bin/arm-xilinx-eabi/../../libexec/arm-xilinx-eabi/gcc/arm-xilinx-eabi/11.2.0/real-ld.exe: E:\1.work\24.10G\1.10G_IP\10G_GEV_Design_Package_MVDK_ZX5\FPGA\xgvrd-mvdk-zx5-n-20250212\vitis\xgvrd\Debug/../src/user.c:290: undefined reference to `eeprom_write_dword' e:/2.software/vivado2022/vitis/2022.2/gnu/aarch32/nt/gcc-arm-none-eabi/x86_64-oesdk-mingw32/usr/bin/arm-xilinx-eabi/../../libexec/arm-xilinx-eabi/gcc/arm-xilinx-eabi/11.2.0/real-ld.exe: E:\1.work\24.10G\1.10G_IP\10G_GEV_Design_Package_MVDK_ZX5\FPGA\xgvrd-mvdk-zx5-n-20250212\vitis\xgvrd\Debug/../src/user.c:350: undefined reference to `gige_set_scmbs' e:/2.software/vivado2022/vitis/2022.2/gnu/aarch32/nt/gcc-arm-none-eabi/x86_64-oesdk-mingw32/usr/bin/arm-xilinx-eabi/../../libexec/arm-xilinx-eabi/gcc/arm-xilinx-eabi/11.2.0/real-ld.exe: ./src/user.o: in function `user_init': E:\1.work\24.10G\1.10G_IP\10G_GEV_Design_Package_MVDK_ZX5\FPGA\xgvrd-mvdk-zx5-n-20250212\vitis\xgvrd\Debug/../src/user.c:462: undefined reference to `gige_set_scmbs' e:/2.software/vivado2022/vitis/2022.2/gnu/aarch32/nt/gcc-arm-none-eabi/x86_64-oesdk-mingw32/usr/bin/arm-xilinx-eabi/../../libexec/arm-xilinx-eabi/gcc/arm-xilinx-eabi/11.2.0/real-ld.exe: E:\1.work\24.10G\1.10G_IP\10G_GEV_Design_Package_MVDK_ZX5\FPGA\xgvrd-mvdk-zx5-n-20250212\vitis\xgvrd\Debug/../src/user.c:466: undefined reference to `gige_set_acquisition_status' e:/2.software/vivado2022/vitis/2022.2/gnu/aarch32/nt/gcc-arm-none-eabi/x86_64-oesdk-mingw32/usr/bin/arm-xilinx-eabi/../../libexec/arm-xilinx-eabi/gcc/arm-xilinx-eabi/11.2.0/real-ld.exe: ./src/user.o: in function `user_callback': E:\1.work\24.10G\1.10G_IP\10G_GEV_Design_Package_MVDK_ZX5\FPGA\xgvrd-mvdk-zx5-n-20250212\vitis\xgvrd\Debug/../src/user.c:499: undefined reference to `gige_send_message' e:/2.software/vivado2022/vitis/2022.2/gnu/aarch32/nt/gcc-arm-none-eabi/x86_64-oesdk-mingw32/usr/bin/arm-xilinx-eabi/../../libexec/arm-xilinx-eabi/gcc/arm-xilinx-eabi/11.2.0/real-ld.exe: E:\1.work\24.10G\1.10G_IP\10G_GEV_Design_Package_MVDK_ZX5\FPGA\xgvrd-mvdk-zx5-n-20250212\vitis\xgvrd\Debug/../src/user.c:504: undefined reference to `gige_send_message' e:/2.software/vivado2022/vitis/2022.2/gnu/aarch32/nt/gcc-arm-none-eabi/x86_64-oesdk-mingw32/usr/bin/arm-xilinx-eabi/../../libexec/arm-xilinx-eabi/gcc/arm-xilinx-eabi/11.2.0/real-ld.exe: ./src/user.o: in function `gige_event': E:\1.work\24.10G\1.10G_IP\10G_GEV_Design_Package_MVDK_ZX5\FPGA\xgvrd-mvdk-zx5-n-20250212\vitis\xgvrd\Debug/../src/user.c:539: undefined reference to `gige_get_gev_version' e:/2.software/vivado2022/vitis/2022.2/gnu/aarch32/nt/gcc-arm-none-eabi/x86_64-oesdk-mingw32/usr/bin/arm-xilinx-eabi/../../libexec/arm-xilinx-eabi/gcc/arm-xilinx-eabi/11.2.0/real-ld.exe: E:\1.work\24.10G\1.10G_IP\10G_GEV_Design_Package_MVDK_ZX5\FPGA\xgvrd-mvdk-zx5-n-20250212\vitis\xgvrd\Debug/../src/user.c:553: undefined reference to `gige_set_acquisition_status' e:/2.software/vivado2022/vitis/2022.2/gnu/aarch32/nt/gcc-arm-none-eabi/x86_64-oesdk-mingw32/usr/bin/arm-xilinx-eabi/../../libexec/arm-xilinx-eabi/gcc/arm-xilinx-eabi/11.2.0/real-ld.exe: E:\1.work\24.10G\1.10G_IP\10G_GEV_Design_Package_MVDK_ZX5\FPGA\xgvrd-mvdk-zx5-n-20250212\vitis\xgvrd\Debug/../src/user.c:570: undefined reference to `gige_set_acquisition_status' e:/2.software/vivado2022/vitis/2022.2/gnu/aarch32/nt/gcc-arm-none-eabi/x86_64-oesdk-mingw32/usr/bin/arm-xilinx-eabi/../../libexec/arm-xilinx-eabi/gcc/arm-xilinx-eabi/11.2.0/real-ld.exe: E:\1.work\24.10G\1.10G_IP\10G_GEV_Design_Package_MVDK_ZX5\FPGA\xgvrd-mvdk-zx5-n-20250212\vitis\xgvrd\Debug/../src/user.c:579: undefined reference to `gige_set_acquisition_status' collect2.exe: error: ld returned 1 exit status make[1]: *** [makefile:44: xgvrd.elf] Error 1 make: *** [makefile:35: all] Error 2
10-29
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ayka

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值