gpt4 book ai didi

c - 为什么此代码在编译时会生成错误 'undefined reference to main'?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:25:15 26 4
gpt4 key购买 nike

这是一项作业,但现在我只是在玩弄在教程中找到的代码,但我似乎无法编译它,而且我不明白我收到的错误。我的代码如下:

#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>

void *myfunc (void *myvar);

int main( int argc, char *argv[])
{
pthread_t thread1;
pthread_t thread2;
char *msg1 = "First thread";
char *msg2 = "Second thread";
int ret1;
int ret2;
//create threads
ret1 = pthread_create(&thread1, NULL, myfunc, (void*) msg1);
ret2 = pthread_create(&thread2, NULL, myfunc, (void*) msg2);

printf("Main function after pthread_create\n");
//join threads back to main process once completed
pthread_join(thread1, NULL);
pthread_join(thread2, NULL);
printf("Return thread ret1 = %d\n", ret1);
printf("Return thread ret2 = %d\n", ret2);


return 0;
}

void *myfunc(void *myvar)

{
char *msg;
msg = (char *) myvar;
int i;
for (i = 0; i < 10; i++) {
printf("%s%d\n", msg, i);
sleep(1);
}
return NULL;
}

我使用 gcc -o c_thread c_thread.c 编译并收到错误:

/usr/lib/gcc/x86_64-linux-gnu/5/.../.../.../x84_64-linux-gnu/ctr1.o: In function '_start':
/build/buildd/glibc-2.21/csu/.../sysdeps/x86_64/start.S:114: undefined reference to 'main'
collect2: error: ld returned 1 exit status

我知道有人问过其他关于类似错误的问题,但我发现的每个答案都与使用“非传统”主函数的代码有关,而我的则遵循标准 int main(int argc char *argv[] ) 格式

如有任何建议,我们将不胜感激

最佳答案

编译时缺少 -lpthread

如果您在 IDE 中工作,请尝试通过终端按以下方式编译或从链接器调整设置:

gcc pro.c -o pro -lpthread

假设 pro.c 是您的程序文件。

关于c - 为什么此代码在编译时会生成错误 'undefined reference to main'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36251374/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com