gcc -o chksum chksum.c /usr/bin/ld: cannot open output file chksum: 权限不够 collect2: error: ld returned 1 exit status make: *** [Makefile:28:all] 错误 1
时间: 2023-06-28 10:04:55 浏览: 165
这是因为你没有足够的权限在当前目录下创建 `chksum` 可执行文件。试试用 `sudo` 命令执行 `make` 命令,如下所示:
```
sudo make
```
这将使用管理员权限运行 `make` 命令,并且应该可以解决你的问题。如果你想在没有超级用户权限的情况下编译并创建可执行文件,你需要将可执行文件输出到你有写入权限的目录中。例如,你可以将可执行文件输出到 `/tmp` 目录中,如下所示:
```
gcc -o /tmp/chksum chksum.c
```
这将在 `/tmp` 目录下创建一个名为 `chksum` 的可执行文件。
相关问题
c:/x86_64-posix-seh-gcc-11.2.0-mingw/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\30378\AppData\Local\Temp\cchAxQN0.o:main.cpp:(.text+0x15): undefined reference to `platform::Init()' c:/x86_64-posix-seh-gcc-11.2.0-mingw/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\30378\AppData\Local\Temp\cchAxQN0.o:main.cpp:(.text+0x21): undefined reference to `platform::Run()' collect2.exe: error: ld returned 1 exit status [Finished in 1.3s]
这个错误是链接错误,编译器无法找到 `platform::Init()` 和 `platform::Run()` 的定义。
这种错误通常发生在以下情况下:
1. 忘记在代码中定义或声明这些函数。
2. 忘记将相关的源文件添加到编译器的编译选项中。
3. 在使用这些函数的文件中,没有包含定义它们的头文件。
请检查以下几点以解决这个问题:
1. 确保在代码中定义了 `platform::Init()` 和 `platform::Run()`。如果没有,请确保它们被正确地声明和定义。
2. 确保将相关的源文件添加到编译器的编译选项中,以便编译器可以找到这些定义。你可以检查你的构建系统(如CMake或Makefile)以确保源文件被正确地包含和编译。
3. 在使用这些函数的文件中,确保包含了定义它们的头文件。如果没有包含正确的头文件,编译器将无法找到这些定义。
请注意,如果你使用了库文件(例如,`.lib` 或 `.dll` 文件),你需要确保将库文件链接到你的项目中。
如果你能提供更多的代码和构建系统信息,我可以给出更具体的帮助。
/usr/lib/gcc-cross/aarch64-linux-gnu/7/../../../../aarch64-linux-gnu/bin/ld: 当搜索用于 ./libjpeg.a 时跳过不兼容的 -ljpeg /usr/lib/gcc-cross/aarch64-linux-gnu/7/../../../../aarch64-linux-gnu/bin/ld: 找不到 -ljpeg
这个错误提示表明 ld 在搜索 ./libjpeg.a 时跳过了不兼容的 -ljpeg,同时找不到 -ljpeg。这可能是由于缺少 libjpeg 库或者库路径不正确导致的。你可以尝试检查库路径是否正确,并且确保 libjpeg 库已经正确安装。如果问题仍然存在,你可以尝试使用 -L 选项指定库路径,或者使用 -l 选项指定库名称。
阅读全文