gpt4 book ai didi

c++ - Code::Blocks pthread 示例无法编译

转载 作者:太空宇宙 更新时间:2023-11-04 11:38:19 24 4
gpt4 key购买 nike

也许这个问题很简单,但我不知道如何解决它:我尝试在 windows 7(64 位)上编译一个包含 pthreas 的示例,使用 Code Blocks 我下载了预构建库并设置了 building_options:编译器 pthreadLib\include 和链接器到 pthreadLib\lib\x64 的路径程序是:

extern "C"
{
#include <pthread.h>
#include <unistd.h>
}
#include <iostream>
#include <windows.h>

using namespace std ;

void * function1(void * argument);
void * function2(void * argument);

int main( void )
{
pthread_t t1, t2 ; // declare 2 threads.

pthread_create( &t1, NULL, function1,NULL); // create a thread running function1
pthread_create( &t2, NULL, function2,NULL); // create a thread running function2

Sleep(1);

return 0;
}

void * function1(void * argument)
{
cout << " hello " << endl ;
Sleep(2); // fall alseep here for 2 seconds...
return 0;
}

void * function2(void * argument)
{
cout << " world " << endl ;
return 0;
}

如果我评论 pthread_create(); 函数,它会生成。所以 pthread_t 被识别为一个类型。当我尝试使用 pthread_create 进行编译时出现错误:

mingw32-g++.exe -L..\libs\Pre-built.2\lib\x64 -LD:\DropBox\WorkUT\Programs\MyODP\libs -o bin\Release\RIP.exe obj\Release\main.o  -s  ..\libs\Pre-built.2\lib\x64\libpthreadGC2.a ..\libs\Pre-built.2\lib\x64\pthreadVC2.lib
obj\Release\main.o:main.cpp:(.text.startup+0x36): undefined reference to `_imp__pthread_create'
collect2.exe: error: ld returned 1 exit status
Process terminated with status 1 (0 minute(s), 0 second(s))
1 error(s), 1 warning(s) (0 minute(s), 0 second(s))

我是否必须在 C::B 中进行额外的设置?我厌倦了添加链接器命令 -lpthread 但无法识别。

最佳答案

2 天后我弄明白了。

首先:我安装了 minGW 64适用于 Windows 操作系统。下一步:我将 C::B 设置为在 post 之后使用 minGW_64 .此外:我添加到链接器库 ..\libs\Pre-built.2\lib\x64\libpthreadGC2.a..\libs\Pre-built.2\lib\x64\pthreadVC2.lib。最后,我将 pthreadGC2.dll(64 位版本!)添加到我的项目中。

经验教训,不要混合库。和 86 位和 64 位的编译器。

关于c++ - Code::Blocks pthread 示例无法编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22386428/

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