日期:2014-05-16  浏览次数:20564 次

pthread()的问题?
用c++写了一个类 一个成员函数调用pthread_create()生成一个线程,用g++编译器编译可以通过。文件名为serves.cpp
但,用c写了个函数调用pthread_create()生成一个线程时,不管用g++还是用gcc编译器都编译不过,说:undefined reference to `pthread_create' 文件名不管是client.c还是client.cpp都是报这个错,然后编译时加上-lpthread 命令就可以编译过了。

我想知道用类成员函数调用phread_create()时为什么不用加库链接 -lpthread 也能编译过呀?


------解决方案--------------------
有这等事?
------解决方案--------------------
编译的时候只要加上头文件都可以编译过。连接的时候需要加载pthread库
------解决方案--------------------
相当于你用到数学库的时候编译连接要加-lmath,一样,指定要用到那个库
------解决方案--------------------
探讨

编译的时候只要加上头文件都可以编译过。连接的时候需要加载pthread库

------解决方案--------------------
LZ的问题不在于编译和链接。。。

你要知道,用c++写,用成员函数调用,以及用C语言写,LZ都是编译
------解决方案--------------------
关键在于g++可以自动完成链接。
g++实际上在编译阶段会调用gcc.

cpp结尾的,gcc,g++都会将其认为是c++.

所以,当你使用cpp结尾的时候,使用g++,会自动给你完成链接。

但是你用.c结尾,无法完成自动库的链接。所以,会报错。
------解决方案--------------------
?其实我看不懂,其实我就是想得点积分下点东西
------解决方案--------------------
大家好
------解决方案--------------------
刚好要学习
------解决方案--------------------
我也看不懂 就想要点积分
------解决方案--------------------
在编译开关里加入-v可以看出编译器自动链接的库
------解决方案--------------------
你只要编译选项里加上-lpthread就可以了

你那个是链接失败了,平时用gcc编译C代码的时候默认是没有加入pthread的动态链接库的
------解决方案--------------------
还有这种事啊,不懂...
------解决方案--------------------
有这等事?
------解决方案--------------------
gcc跟g++的区别。

------解决方案--------------------
高手,我都要哭了
------解决方案--------------------
软件开发 QQ群 102554126
------解决方案--------------------
支持一下!!!!
------解决方案--------------------
用c++写了一个类 一个成员函数调用pthread_create()生成一个线程,用g++编译器编译可以通过。文件名为serves.cpp
但,用c写了个函数调用pthread_create()生成一个线程时,不管用g++还是用gcc编译器都编译不过,说:undefined reference to `pthread_create' 文件名不管是client.c还是client.cpp都是报这个错,然后编译时加上-lpthread 命令就可以编译过了。

我想知道用类成员函数调用phread_create()时为
------解决方案--------------------
从来没有这样做过,学习了