构建文件:“无目标”在“无项目”中(编译器:未知)
我用c/c++写了一段代码。更正所有错误后,我尝试编译并构建它,并收到以下错误日志:
-------------- Build file: "no target" in "no project" (compiler: unknown)---------------
gcc -std=c11 -c /sysroot/home/arij/tryvache.c -o /sysroot/home/arij/tryvache.o
gcc -o /sysroot/home/arij/tryvache /sysroot/home/arij/tryvache.o
/usr/lib/gcc/x86_64-unknown-linux-gnu/11.2.0/../../../../x86_64-unknown-linux-gnu/bin/ld : /sysroot/home/arij/tryvache.o : dans la fonction « vache » :
tryvache.c:(.text+0x130) : référence indéfinie vers « pow »
/usr/lib/gcc/x86_64-unknown-linux-gnu/11.2.0/../../../../x86_64-unknown-linux-gnu/bin/ld : tryvache.c:(.text+0x1f7) : référence indéfinie vers « pow »
collect2: erreur: ld a retourné le statut de sortie 1
Process terminated with status 1 (0 minute(s), 0 second(s))
0 error(s), 0 warning(s) (0 minute(s), 0 second(s))
这里出了什么问题?
I wrote a code in c/c++. After correcting all the errors, I tried to compile and build it and I get this error log:
-------------- Build file: "no target" in "no project" (compiler: unknown)---------------
gcc -std=c11 -c /sysroot/home/arij/tryvache.c -o /sysroot/home/arij/tryvache.o
gcc -o /sysroot/home/arij/tryvache /sysroot/home/arij/tryvache.o
/usr/lib/gcc/x86_64-unknown-linux-gnu/11.2.0/../../../../x86_64-unknown-linux-gnu/bin/ld : /sysroot/home/arij/tryvache.o : dans la fonction « vache » :
tryvache.c:(.text+0x130) : référence indéfinie vers « pow »
/usr/lib/gcc/x86_64-unknown-linux-gnu/11.2.0/../../../../x86_64-unknown-linux-gnu/bin/ld : tryvache.c:(.text+0x1f7) : référence indéfinie vers « pow »
collect2: erreur: ld a retourné le statut de sortie 1
Process terminated with status 1 (0 minute(s), 0 second(s))
0 error(s), 0 warning(s) (0 minute(s), 0 second(s))
What is wrong here?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
查看您在OP中发布的错误消息,我认为它会转换为
在
tryvache.c
中使用,您必须使用标志
-lm
来编译代码,该标志指示您的编译器( gcc) 与包含pow()
函数的数学库链接。如果您自己编写了 makefile,那么您只需按照上面注释中的说明添加
-lm
即可。如果您使用的是像 eclipse 这样的 IDE,那么您必须仔细检查编译器选项和/或构建设置,以找到需要添加链接器标志(例如 -lm
)的正确部分。在 Eclipse IDE 上,这些通常位于 GCC C Linker > C/C++ 构建设置下的库。
旁注:如果您用英语设置工具链会更好,如果没有,至少为试图解决您问题的人翻译错误。
Looking at the error message you have posted in the OP, I think it translates to
used in
tryvache.c
You must compile the code with flag
-lm
which instructs your compiler (gcc) to link with math library which containspow()
function.If you have written the makefile all by yourself then you can simply add
-lm
as instructed in the comment above. If you are using an IDE like eclipse, then you will have to go though compiler options and/or build settings to find a correct section where the linker flags (such as -lm
) needs to be added.On eclipse IDE these are usually at GCC C Linker > libraries under the C/C++ Build settings.
Side note: It will be better if you setup your toolchain in English, if not, at least translate the errors for the people trying to solve your problem.