gpt4 book ai didi

c - 我无法在窗口平台中使用 pthread

转载 作者:行者123 更新时间:2023-12-01 15:56:04 27 4
gpt4 key购买 nike

我的环境是 Windows8.1(64 位)并使用 Visual Studio 2010。

我确实将所有 *.dll 文件放在 system32 、 SYSWOW64 中(因为我使用的是 win8 64bit。)

和链接位置,其中 *.lib 文件用于 x64 系统与 VC 2010。

当然,我添加了额外的文件夹 lib forders.. ,包括文件夹......等等。

但是当我尝试编译“pthread-used”项目时,发生了 fatal error 。

-source

#include<pthread.h>
#include<stdio.h>
int doit_id,trd_id;
pthread_t trd;
void *doit(void *data){
doit_id = (int)data;
return 0;
}
int main(){
trd_id=pthread_create(&trd,NULL,doit,0);
return (0);
}

-错误
1.obj : error LNK2019: unresolved external symbol __imp__pthread_create (referenced in function _main)
C:\Users\~program Location~ : fatal error LNK1120: 1 unresolved externals

请帮我

最佳答案

事实上,您的 main()正在寻找名字 __imp__pthread_create表示您正在为 32 位目标构建项目。

64 位 Win32 pthread 库有一个导入符号 pthread_create()名称:

__imp_pthread_create

32 位 Win32 pthread 库具有:
__imp__pthread_create

请注意 32 位库中额外的下划线 - 与您的 main() 的名称约定相匹配正在寻找,所以这表明您正在为 32 位目标构建。额外的下划线是 x86 构建如何在 Win32 pthread 库使用的 cdecl 调用约定中处理名称的一部分。 x64 不使用 cdecl 调用约定(x64 只有一个调用约定),并且下划线不在 x64 构建中的符号前面。

我认为您需要下载或构建 32 位 pthread 库,或者更改您的项目配置以构建 64 位目标。

关于c - 我无法在窗口平台中使用 pthread,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20020264/

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