我是一名 .NET 微软人,试图投奔 Linux。我需要学习如何在 C++ 中构建多线程代码。但我点卡在第一个坑洼......我找到了这个例子:
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
void *print_message_function( void *ptr );
main()
{
pthread_t thread1, thread2;
const char *message1 = "Thread 1";
const char *message2 = "Thread 2";
int iret1, iret2;
iret1 = pthread_create( &thread1, NULL, print_message_function, (void*) message1);
iret2 = pthread_create( &thread2, NULL, print_message_function, (void*) message2);
pthread_join( thread1, NULL);
pthread_join( thread2, NULL);
printf("Thread 1 returns: %d\n",iret1);
printf("Thread 2 returns: %d\n",iret2);
exit(0);
}
void *print_message_function( void *ptr )
{
char *message;
message = (char *) ptr;
printf("%s \n", message);
}
但我不能在 Eclipse 中运行它。我收到错误:
Description Resource Path Location Type
make: *** [TestMySQL] Error 1 TestMySQL C/C++ Problem
undefined reference to `pthread_create' TestMySQL.cpp /TestMySQL/src line 16 C/C++ Problem
undefined reference to `pthread_create' TestMySQL.cpp /TestMySQL/src line 17 C/C++ Problem
undefined reference to `pthread_join' TestMySQL.cpp /TestMySQL/src line 23 C/C++ Problem
undefined reference to `pthread_join' TestMySQL.cpp /TestMySQL/src line 24 C/C++ Problem
非常感谢!