带你学C带你飞第一季第二课课后作业
本帖最后由 w陌上尘 于 2023-7-12 17:01 编辑我想用Windows的cmd运行可以统计代码量的那个count_lines的可执行程序,但是显示出来的是这个:
C:\Users\32759\projects\helloworld>gcc count_lines.c -o count_lines
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.1.0/../../../../lib/libmingw32.a(lib64_libmingw32_a-crtexewin.o): in function `main':
C:/M/B/src/mingw-w64/mingw-w64-crt/crt/crtexewin.c:70: undefined reference to `WinMain'
collect2.exe: error: ld returned 1 exit status
大佬可以帮我看一下问题出在哪里吗?!我的C语言编译器配置什么的都是完成了的,还有就是我的系统是Win11
或者谁能告诉我怎么操作可以弄出来,求助{:7_131:}
之前忘记把代码弄过来,主要是这个能找到的,就是在论坛里面的那个课后作业里面,《带你学C带你飞(第一季)》S1E2:第一个程序|课后测试题------链接附上:fishc.com.cn/thread-66283-1-1.html 从你给出的错误信息来看, gcc 试图链接一个含有 WinMain 函数的程序,但是在你的 count_lines.c 文件中找不到这个函数,因此链接失败。
WinMain 函数是Windows应用程序的入口点,而不是控制台程序。控制台程序的入口点应该是 main 函数。也就是说,可能你的 count_lines.c 文件缺少了 main 函数。
请检查你的 count_lines.c 源文件是否包含一个 main 函数,像下面这样:
#include <stdio.h>
int main() {
// your code here
return 0;
}
如果你的 count_lines.c 文件包含 main 函数但仍然出现这个问题,你可能需要给 gcc 指定你正在编译的是一个控制台程序。你可以通过添加 -mconsole 标志来完成这个操作:
gcc -mconsole count_lines.c -o count_lines
如果你在尝试上述建议后仍然遇到问题,你可能需要提供更多的上下文信息,例如你的 count_lines.c 文件的内容,以便我能提供更具体的帮助。 代码? 你的代码呢 根据你提供的错误信息,问题出在链接器(ld)无法找到WinMain函数。这个错误通常发生在使用Windows子系统的控制台应用程序中,因为Windows子系统期望程序的入口点为WinMain,而不是标准的main函数。
解决这个问题有两种方法:
方法一:将代码中的main函数改为WinMain函数。这样做会改变程序的入口点,但如果你只是想简单地统计代码行数,这可能不是最理想的选择。
方法二:在代码中添加一个空的WinMain函数,并链接Windows子系统的库。你可以尝试按照以下步骤进行操作:
在代码文件的开头添加如下代码段:
c
Copy Code
#include <windows.h>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
return 0;
}
修改编译命令,将-mconsole选项更改为-mwindows,并且添加-luser32选项以链接Windows子系统的库。例如:
bash
Copy Code
gcc count_lines.c -o count_lines -mwindows -luser32
这样修改后,应该可以成功编译并生成可执行文件。请注意,由于你使用的是Windows 11,你可能需要相应的更新了MinGW或MinGW-w64编译工具链,以确保与新操作系统的兼容性。
希望以上信息能够帮助你解决问题。如果还有其他疑问,请随时提出。 liuhongrun2022 发表于 2023-7-12 13:32
你的代码呢
gpt脚本写好了 歌者文明清理员 发表于 2023-7-12 14:51
gpt脚本写好了
nb{:10_269:} liuhongrun2022 发表于 2023-7-12 14:52
nb
打不过就加入 本帖最后由 w陌上尘 于 2023-7-12 17:21 编辑
歌者文明清理员 发表于 2023-7-12 14:48
根据你提供的错误信息,问题出在链接器(ld)无法找到WinMain函数。这个错误通常发生在使用Windows子系统的控 ...
大佬,我是需要先将代码抄到那个count_lines.c这个文件里面对吧?可以就是先用文本文档(比如说.txt文件)抄过去,然后通过修改文件后缀名的方式让它变成.c的文件对吧?或者只能用一些软件之类的来创建这个count_lines.c的文件呢(比如说用VScode扩展c/c++的插件,然后进行创建这个文件)? 歌者文明清理员 发表于 2023-7-12 14:48
根据你提供的错误信息,问题出在链接器(ld)无法找到WinMain函数。这个错误通常发生在使用Windows子系统的控 ...
大佬,我按照你说的那样去做了,但是还是毛都没有出来一根啊
这次是直接啥都没有了,就是一行空的
能再帮我分析一下问题出在哪里吗?
还有就是,我搞不清楚你给我的那几行代码怎么插进我抄的代码里面去,插在什么位置 w陌上尘 发表于 2023-7-12 19:42
大佬,我按照你说的那样去做了,但是还是毛都没有出来一根啊
这次是直接啥都没有了,就是一行空的
能再 ...
歌者文明清理员 发表于 2023-7-12 19:44
{:7_112:}我知道了,谢谢大佬,我之前没有注意到,我已经生成了.exe可执行文件了 歌者文明清理员 发表于 2023-7-12 19:44
我想执行那个count_lines.exe,我直接输入的"count_lines",但是没有任何反应啊,就是一行空的 w陌上尘 发表于 2023-7-12 19:51
我想执行那个count_lines.exe,我直接输入的"count_lines",但是没有任何反应啊,就是一行空的
给了最佳就别指望回复了 sfqxx 发表于 2023-7-12 21:00
给了最佳就别指望回复了
啊,这 w陌上尘 发表于 2023-7-12 22:17
啊,这
论坛就是这样。
页:
[1]