当前位置: 技术问答>linux和unix
pthread()的问题?
来源: 互联网 发布时间:2016-11-03
本文导语: 用c++写了一个类 一个成员函数调用pthread_create()生成一个线程,用g++编译器编译可以通过。文件名为serves.cpp 但,用c写了个函数调用pthread_create()生成一个线程时,不管用g++还是用gcc编译器都编译不过,说:undefined r...
用c++写了一个类 一个成员函数调用pthread_create()生成一个线程,用g++编译器编译可以通过。文件名为serves.cpp
但,用c写了个函数调用pthread_create()生成一个线程时,不管用g++还是用gcc编译器都编译不过,说:undefined reference to `pthread_create' 文件名不管是client.c还是client.cpp都是报这个错,然后编译时加上-lpthread 命令就可以编译过了。
我想知道用类成员函数调用phread_create()时为什么不用加库链接 -lpthread 也能编译过呀?
但,用c写了个函数调用pthread_create()生成一个线程时,不管用g++还是用gcc编译器都编译不过,说:undefined reference to `pthread_create' 文件名不管是client.c还是client.cpp都是报这个错,然后编译时加上-lpthread 命令就可以编译过了。
我想知道用类成员函数调用phread_create()时为什么不用加库链接 -lpthread 也能编译过呀?
|
有这等事?
|
编译的时候只要加上头文件都可以编译过。连接的时候需要加载pthread库
|
相当于你用到数学库的时候编译连接要加-lmath,一样,指定要用到那个库
|
+1
编译与连接是不一样的!
编译与连接是不一样的!
|
LZ的问题不在于编译和链接。。。
你要知道,用c++写,用成员函数调用,以及用C语言写,LZ都是编译
你要知道,用c++写,用成员函数调用,以及用C语言写,LZ都是编译
|
关键在于g++可以自动完成链接。
g++实际上在编译阶段会调用gcc.
cpp结尾的,gcc,g++都会将其认为是c++.
所以,当你使用cpp结尾的时候,使用g++,会自动给你完成链接。
但是你用.c结尾,无法完成自动库的链接。所以,会报错。
g++实际上在编译阶段会调用gcc.
cpp结尾的,gcc,g++都会将其认为是c++.
所以,当你使用cpp结尾的时候,使用g++,会自动给你完成链接。
但是你用.c结尾,无法完成自动库的链接。所以,会报错。
|
?其实我看不懂,其实我就是想得点积分下点东西
|
大家好
|
刚好要学习
|
我也看不懂 就想要点积分
|
在编译开关里加入-v可以看出编译器自动链接的库
|
你只要编译选项里加上-lpthread就可以了
你那个是链接失败了,平时用gcc编译C代码的时候默认是没有加入pthread的动态链接库的
你那个是链接失败了,平时用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()时为
但,用c写了个函数调用pthread_create()生成一个线程时,不管用g++还是用gcc编译器都编译不过,说:undefined reference to `pthread_create' 文件名不管是client.c还是client.cpp都是报这个错,然后编译时加上-lpthread 命令就可以编译过了。
我想知道用类成员函数调用phread_create()时为
|
从来没有这样做过,学习了