现在有别人给的,有.h .cpp .a .so文件,我要怎么调用呢?测试文件:main.cpp
18 个解决方案
#2
g++ -o test main.cpp *.a
就可以了
*.a就是别人给你的库文件。编译生成test
就可以了
*.a就是别人给你的库文件。编译生成test
#3
我当然看过,搜索过相关的文章,也了解了动态与静态库,而且我按着网上的人说的方法自己创建和生成静态库,动态库了,并且已经用简单的文件成功调用了,可是,同样的编译和调用方法,用在别人给的这个上,就没有作用,编译都编译不过去
#4
编译不过去啊……有错误……
#5
错误提示是什么?
C++中有name-mangling,动态库尽量用纯C版本的
C++中有name-mangling,动态库尽量用纯C版本的
#6
.h error:expected constructor. destructor. or type conversion before 乱码 token
这是其中错误之一的格式,好像没有连接上动态库……
这是其中错误之一的格式,好像没有连接上动态库……
#7
export LANG=C
g++ -o test main.cpp *.a
提示什么?
g++ -o test main.cpp *.a
提示什么?
#8
一样的错误,不过没有乱码了
#9
难道屏幕输出这个??
.h error:expected constructor. destructor. or type conversion before token
.h error:expected constructor. destructor. or type conversion before token
#10
.h error:expected constructor. destructor. or type conversion before '(' token
#11
.h error:expected constructor. destructor. or type conversion before '(' token
.h error:'WORD' does not name a type
…………
等等错误,我真不知道该怎么弄了,从哪里入手
#12
缺少头文件吧
类型不识别
类型不识别
#13
有头文件啊,可是为什么会这样?
#14
baidu
#15
在LINUX环境下,我知道你可以DLOPEN,DLCLOSE,一系列函数通过函数名来找到相应的函数,返回函数指针你可以通过函数指针调用该函数,C++我快忘光拉,不知道C++能不能这样做!
#16
如果静态加载的话,包含你所需要加载类库的头文件,这样编译就没有问题;
链接时,用-L指定库的路径,-l指定库的名字,这样就OK了。
你的报错:
.h error:expected constructor. destructor. or type conversion before '(' token
.h error:'WORD' does not name a type
应该是在编译阶段,那就是所链接的符号找不到,比如WORD,你可以查一下WORD有没有定义。
一般“does not name a type”错误,是这个类型不认识。
链接时,用-L指定库的路径,-l指定库的名字,这样就OK了。
你的报错:
.h error:expected constructor. destructor. or type conversion before '(' token
.h error:'WORD' does not name a type
应该是在编译阶段,那就是所链接的符号找不到,比如WORD,你可以查一下WORD有没有定义。
一般“does not name a type”错误,是这个类型不认识。
#17
.h error:expected constructor. destructor. or type conversion before '(' token
"("前面的那个结构体或者变量系统不认识。
"("前面的那个结构体或者变量系统不认识。
#18
还是木有弄明白这个问题……唉……以后有空再研究吧……
#1
了解下动态库和静态库就会使用了,自己搜索下,或简单看看下面文章
http://hi.baidu.com/mgqw/blog/item/120a1d3dab7f1f03bba16710.html
http://hi.baidu.com/mgqw/blog/item/120a1d3dab7f1f03bba16710.html
#2
g++ -o test main.cpp *.a
就可以了
*.a就是别人给你的库文件。编译生成test
就可以了
*.a就是别人给你的库文件。编译生成test
#3
我当然看过,搜索过相关的文章,也了解了动态与静态库,而且我按着网上的人说的方法自己创建和生成静态库,动态库了,并且已经用简单的文件成功调用了,可是,同样的编译和调用方法,用在别人给的这个上,就没有作用,编译都编译不过去
#4
编译不过去啊……有错误……
#5
错误提示是什么?
C++中有name-mangling,动态库尽量用纯C版本的
C++中有name-mangling,动态库尽量用纯C版本的
#6
.h error:expected constructor. destructor. or type conversion before 乱码 token
这是其中错误之一的格式,好像没有连接上动态库……
这是其中错误之一的格式,好像没有连接上动态库……
#7
export LANG=C
g++ -o test main.cpp *.a
提示什么?
g++ -o test main.cpp *.a
提示什么?
#8
一样的错误,不过没有乱码了
#9
难道屏幕输出这个??
.h error:expected constructor. destructor. or type conversion before token
.h error:expected constructor. destructor. or type conversion before token
#10
.h error:expected constructor. destructor. or type conversion before '(' token
#11
.h error:expected constructor. destructor. or type conversion before '(' token
.h error:'WORD' does not name a type
…………
等等错误,我真不知道该怎么弄了,从哪里入手
#12
缺少头文件吧
类型不识别
类型不识别
#13
有头文件啊,可是为什么会这样?
#14
baidu
#15
在LINUX环境下,我知道你可以DLOPEN,DLCLOSE,一系列函数通过函数名来找到相应的函数,返回函数指针你可以通过函数指针调用该函数,C++我快忘光拉,不知道C++能不能这样做!
#16
如果静态加载的话,包含你所需要加载类库的头文件,这样编译就没有问题;
链接时,用-L指定库的路径,-l指定库的名字,这样就OK了。
你的报错:
.h error:expected constructor. destructor. or type conversion before '(' token
.h error:'WORD' does not name a type
应该是在编译阶段,那就是所链接的符号找不到,比如WORD,你可以查一下WORD有没有定义。
一般“does not name a type”错误,是这个类型不认识。
链接时,用-L指定库的路径,-l指定库的名字,这样就OK了。
你的报错:
.h error:expected constructor. destructor. or type conversion before '(' token
.h error:'WORD' does not name a type
应该是在编译阶段,那就是所链接的符号找不到,比如WORD,你可以查一下WORD有没有定义。
一般“does not name a type”错误,是这个类型不认识。
#17
.h error:expected constructor. destructor. or type conversion before '(' token
"("前面的那个结构体或者变量系统不认识。
"("前面的那个结构体或者变量系统不认识。
#18
还是木有弄明白这个问题……唉……以后有空再研究吧……