cc -m64 -mcx16 @qemu-system-aarch64.rsp /usr/bin/ld: cannot find -ludev
时间: 2023-08-01 19:12:46 浏览: 274
这个错误信息提示链接器(ld)找不到名为"udev"的库文件。这个库文件是libudev库,它提供了一套API来访问Linux下的udev服务,用于设备管理。你需要安装libudev库文件,然后在编译时使用“-L”选项指定库文件路径,或者将库文件添加到LD_LIBRARY_PATH环境变量中。具体操作可以参考以下步骤:
1. 安装libudev库文件
在Ubuntu系统中可以使用以下命令安装:
```
sudo apt-get install libudev-dev
```
如果你的系统不是Ubuntu,可以使用相应的包管理工具安装libudev-dev或libudev-devel。
2. 指定库文件路径
在编译时使用“-L”选项指定库文件路径,例如:
```
cc -m64 -mcx16 -L/path/to/libudev @qemu-system-aarch64.rsp
```
其中,/path/to/libudev是libudev库文件所在的路径。
3. 添加LD_LIBRARY_PATH环境变量
将libudev库文件添加到LD_LIBRARY_PATH环境变量中,例如:
```
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/libudev
```
其中,/path/to/libudev是libudev库文件所在的路径。
相关问题
aarch64-poky-linux-g++: error: unrecognized command-line option ‘-m64’
这个错误提示是因为在使用aarch64-poky-linux-g++编译时,使用了-m64选项,但是该编译器不支持该选项。-m64是一个x86_64架构的选项,而aarch64是一个ARM架构的选项。
如果你要编译一个ARM架构的程序,应该使用-aarch64-poky-linux-g++编译器,并且不要使用-m64选项。如果你要编译一个x86_64架构的程序,应该使用一个支持-m64选项的编译器,比如gcc或clang。
你可以检查一下你的编译命令,看看是否有-m64选项,如果有,就把它去掉,然后重新编译。
/usr/bin/ld: i386 architecture of input file `ReadWrite_c.o' is incompatible with i386:x86-64 output collect2: error: ld returned 1 exit status能不能改成64的
这个错误是由于编译时使用了 32 位的选项,而当前系统是 64 位的,所以链接器无法将 32 位的目标文件与 64 位的库文件进行链接导致的。
要解决这个错误,首先需要确定你的系统架构是否为 64 位。可以执行以下命令检查:
```
uname -m
```
如果输出结果是 `x86_64`,则表示你的系统是 64 位的。
接下来,你需要重新编译代码,并使用 64 位的选项进行编译链接。例如,如果你使用 GCC 编译器,可以使用以下命令:
```
gcc -m64 ReadWrite_c.c -o ReadWrite_c
```
这里的 `-m64` 选项表示使用 64 位的目标文件和库文件进行链接。执行以上命令后,应该可以成功编译和链接程序了。
阅读全文