C 代码::阻止错误:ld返回1个退出状态
我正在使用代码::Blocks v 16.1.0.0以及它附带的MINGW。链接器有问题。我无法使用C 代码::阻止错误:ld返回1个退出状态,c,linker,codeblocks,linker-errors,ld,C,Linker,Codeblocks,Linker Errors,Ld,我正在使用代码::Blocks v 16.1.0.0以及它附带的MINGW。链接器有问题。我无法使用#include“sth”将单个头文件/源文件链接到源文件。为了缩小问题的范围,我的项目中只有一个源文件和一个头文件,但无论我使用什么文件和尝试什么选项,我都无法绕过此错误 这是构建日志 -------------- Build: Debug in MISC (compiler: GNU GCC Compiler)--------------- gcc.exe -Wall -Wextra -Wa
#include“sth”
将单个头文件/源文件链接到源文件。为了缩小问题的范围,我的项目中只有一个源文件和一个头文件,但无论我使用什么文件和尝试什么选项,我都无法绕过此错误
这是构建日志
-------------- Build: Debug in MISC (compiler: GNU GCC Compiler)---------------
gcc.exe -Wall -Wextra -Wall -g -std=c99 -c C:\Users\username\Documents\CodeBlocks\C\MISC\readFileByChars.c -o obj\Debug\readFileByChars.o
g++.exe -LC:\Users\username\Documents\CodeBlocks\C\MISC -o bin\Debug\MISC.exe obj\Debug\readFileByChars.o readFileByChars.h.gch
readFileByChars.h.gch: file not recognized: File format not recognized
collect2.exe: error: ld returned 1 exit status
Process terminated with status 1 (0 minute(s), 0 second(s))
1 error(s), 0 warning(s) (0 minute(s), 0 second(s))
这是工具链目录:
我以前没有运行任何程序的实例。我也有独立的工作MINGW(在环境变量中不包括其bin文件夹,以免在构建过程中混淆代码块),但对于代码块,我包括安装时附带的预打包的代码块。当我单击链接项目中头文件的选项时,项目将不会生成(但是如果我不链接文件,如何生成我的应用程序?)。我重复这个项目是空的,我只有一个头,只有一个源文件包括在内。我在这里看到了其他类似的问题,但他们的解决方案不起作用。我们将不胜感激。多谢各位
链接器有问题。我无法使用#include“sth”将单个头文件/源文件链接到源文件
链接器没有问题。不能链接头文件或源文件。您只能编译源代码
生成目标文件的文件(可能包括头文件)
包含的头文件可以是,
对于支持此概念的编译器,遵循编译器特定的限制
在使用时(尽管名称不同,预编译头文件不会被编译:它不会被编译)
对象文件)
链接器只能链接对象文件和动态库以生成可执行文件。
它可以直接使用对象文件,也可以从静态库中提取对象文件
失败的链接命令:
g++.exe -LC:\Users\username\Documents\CodeBlocks\C\MISC -o bin\Debug\MISC.exe obj\Debug\readFileByChars.o readFileByChars.h.gch
显示您正试图链接预编译头readFileByChars.h.gch
。链接器说:
readFileByChars.h.gch: file not recognized: File format not recognized
因为预编译头不是对象文件或静态或动态文件
图书馆。这不是链接器理解的东西
更正项目选项,使您不再通过readFileByChars.h.gch
作为链接器输入
想必你已经通过了考试
在code::Blocks项目中生成预编译头readFileByChars.h.gch
。
如果您正确地遵循了该文档,则无需执行任何其他操作即可完成该文档
没有提到。您的其他项目选项不需要告诉编译器或链接器任何事情
关于预编译头
根本不需要使用预编译头,正如您所看到的,它们的
正确使用不是万无一失的,而是特定于编译器的。我会的
建议您以普通方式构建此项目和其他项目,无需预编译头,
除非您面临着漫长的编译时间,否则
预编译的头文件可能会有效地缩短时间。我是如何解决这个问题的: 1.如果从项目中运行文件,请先退出代码块。
2.单独打开文件(不要打开代码块项目文件!)并运行 真正的答案:1。打开任务管理器(ctrl+shift+esc)
2.转到详细信息
3.搜索项目名称和结束任务(将有一个带有项目名称的.exe)
完成了 在工作区中