visual studio-windows下使用pthread.h库的问题

问题描述

windows下使用pthread.h库的问题

#include
#include
#include
#include
#include
pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
pthread_cond_t empty = PTHREAD_COND_INITIALIZER;
pthread_cond_t full = PTHREAD_COND_INITIALIZER;
char buf[256];

int main()
{
pthread_t t1,t2;
void * put_buf(void *);
void * get_buf(void *);
pthread_mutex_lock(&lock);
pthread_cond_signal(&empty);
pthread_create(&t1, NULL, put_buf, NULL);
pthread_create(&t2, NULL, get_buf, NULL);
pthread_join(t1, NULL);
pthread_join(t2, NULL);
return 0;
}
void *put_buf()
{
while (true)
{
pthread_cond_wait(&empty, &lock);
printf_s("empty flag is raised
");
pthread_mutex_lock(&lock);
printf_s("input:
");
gets_s(buf);
pthread_mutex_unlock(&lock);
pthread_cond_signal(&full);

}

}
void *get_buf(){
Sleep(2);
while (true)
{
pthread_cond_wait(&full, &lock);
printf_s("full flag is raised");
pthread_mutex_lock(&lock);
printf_s("output:
");
pthread_cond_signal(&empty);
}
}


出现问题:错误 1 error LNK2019: 无法解析的外部符号 "void * __cdecl put_buf(void *)" (?put_buf@@YAPAXPAX@Z),该符号在函数 _main 中被引用 c:Users陌桑时代shinedocumentsvisual studio 2013ProjectsConsoleApplication2ConsoleApplication2源.obj ConsoleApplication2
错误 2 error LNK2019: 无法解析的外部符号 "void * __cdecl get_buf(void *)" (?get_buf@@YAPAXPAX@Z),该符号在函数 _main 中被引用 c:Users陌桑时代shinedocumentsvisual studio 2013ProjectsConsoleApplication2ConsoleApplication2源.obj ConsoleApplication2

解决方案

额,你要不就把函数写在main函数前面,要不就写上该函数的声明!二选其一呀

解决方案二:

windows下使用pthread库
windows下使用pthread库
windows下使用pthread库

时间: 2024-10-06 22:39:25

visual studio-windows下使用pthread.h库的问题的相关文章

如何在WINDOWS下编译BOOST C++库 .

如何在WINDOWS下编译BOOST C++库 cheungmine 2008-6-25   写出来,怕自己以后忘记了,也为初学者参考.使用VC8.0和boost1.35.0.   1)下载boost http://www.boost.org/users/download/ 这是它的下载页面,需要下载2个东西: Packaged Releases VERSION 1.35.0 和 Boost Jam 3.1.16   你需要在每个条目下面找到Details | Download字样,点击Down

Visual Studio 2012下Box2D开发环境设置

Cocos2d-x 3.x默认情况下采用的物理引擎是Chipmunk如果我们要使用Box2D引擎需要进行一些设置和调整而且不同的开发平台下这些设置也有所不同.由于本书在此之前介绍的都是基于微软的Visual Studio 2012下开发的Win32平台所以这一节我们介绍Visual Studio 2012下Box2D开发环境设置.这些需要设置和调整的方面包括如下在解决方案中添加libBox2D库工程.添加libBox2D库引用.开启Box2D预编译开关. 1.在解决方案中添加libBox2D库首

请问visual studio 2015下怎么去掉不用的解决方案?

问题描述 请问visual studio 2015下怎么去掉不用的解决方案? 并没有什么删除选项, 解决方案 Visual Studio 2012 编译错误[error C4996: 'scanf': This function or variable may be unsafe. ]的解决方案Visual Studio 2012 编译错误[error C4996: 'scanf': This function or variable may be unsafe. ]的解决方案Visual St

Microsoft Visual Studio 2010下如何添加命令提示行_实用技巧

下面给大家介绍Microsoft Visual Studio 2010下添加命令提示行的方法,希望对大家有所帮助. 部分VS2010软件中不存在命令提示行选项,对于这种情况可以通过外部工具进行添加,步骤如下 工具->外部工具 打开外部工具后自行进行添加,参数如下 其中需要注意的是参数一栏 /k "D:\c#\VC\vcvarsall.bat" 参考本文配置的读者可根据各自VS2010的安装目录情况进行修改. 解决这个问题后即可打开VS下的命令行模式.

Visual Studio环境下Windows应用程序和智能设备有何异同?

问题描述 我现在用VisualStudio2005做Windows-mobile智能手机的软件设计,起重要打开浏览一幅图片,用C#在Windows应用程序下实现没问题,但在智能设备PocketPC2003设备应用程序下运行有错误.具体错误如下:pictureBox1.Image=Image.FromFile(openFileDialog1.FileName);这是代开一幅图片的代码,在Windows应用程序下运行没问题,但在智能设备PocketPC2003设备应用程序下运行有错误,说是Syste

Chrome Visual Studio 2005下的编译过程_C#教程

编译篇 研究Chrome ,首先得把它编译出来,这对于后续的代码分析和阅读有很大的帮助,想想自己编译出一个 Chrome 浏览器来使用,那是一件很炫的事情. 编译环境准备 Chrome的编译和 WebKit 相比起来,难度上来说,简直是一元二次方程求解和偏微分方程求解的对比(我到现在还没有完整的把 WebKit 编译出来,鄙视一下自己).虽然 Chrome 也是从 WebKit 演进过来,差不多也就是把 WebKit 的 JS 引擎替换成了 V8 .但是不得不承认 Google 把 WebKit

Windows下Qt 重新编译库文件

首先要设置好环境变量,因为重新编译要调用cl.exe 和nmake.exe. 最简单的设置方法是运行,D:/Microsoft Visual Studio 9.0/Common7/Tools/vsvars32.bat  再运行,D:/Qt/4.6.3/configure.exe .按照提示一步步选择就行了.也可以看下一些选项. 据说 -static 参数可以编译静态链接库.(未测试,因为下面运行nmake一次时间很久!!我用了好几个小时--)   运行完之后,运行nmake.这个时间要很久--

Visual Studio 2010的Web项目jQuery库

我们知道在Visual Studio 2010的非空Web项目(含Webform和MVC)中,都自动包含了jQuery库在项目的Scripts文件夹中.  点击放大 但细心的人们都看到了正式版中包含的jQuery版本是1.4.1版,而不是jQuery官方最新发布的1.4.2版.处于新版效率的极大提升以及部分bug的修复,推荐大家跟新使用1.4.2版,而放弃1.4.1版.单个项目的调整比较简单就是把旧版本的删除,然后添加上1.4.2版的相应文件即可.但我们很多人可能更希望是以后创建的项目都是1.4

visual studio 2010-以下代码是否能根据combobox中的选择在datagridview中显示相应的数据表信息?

问题描述 以下代码是否能根据combobox中的选择在datagridview中显示相应的数据表信息? using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.D