资源预览内容
第1页 / 共2页
第2页 / 共2页
亲,该文档总共2页全部预览完了,如果喜欢就下载吧!
资源描述
linux qt 动态链接库 静态链接库 学习笔记http:/hi.baidu.com/codeworkman/blog/item/32b6ccce51bf3622f9dc6141.html=hello.h=#ifndef HELLO_H#define HELLO_Hextern C void hello(const char *name);#endif =hello.c=#include #include hello.hvoid hello(const char *name)printf(Hello %s!n, name);=main.c=#include hello.hint main()hello(everyone);return 1;方案 0gcc hello.c main.cgcc hello.c main.c -o hello方案 1gcc -c hello.cgcc -c main.cgcc hello.o main.o -o hello方案 2静态库ar rcs libmyhello.a hello.ogcc -o hello main.c -static -L. -lmyhello方案 3动态库gcc -shared -fPIC -o libmyhello.so hello.ogcc -o hello main.c -L. -lmyhellomv libmyhello.so /usr/lib部分选项说明-shared /指定生成动态链接库,不用则相当于一个可执行文件-fPIC /表示编译为位置独立的代码,否则达不到代码段共享的目的;-L. /表示要链接的库在当前目录中-ltest: /编译器查找动态库时有隐含的命名规则 即在给出的前面加上 lib,后面加上.so 来确定名称LD_LIBRARY_PATH:/这个变量指示动态链接器可以装载动态库的路径LIBRARY_PATH: /指定程序静态链接库文件搜索路径qt使用静态库在 qt creator的 pro文件添加LIBS += $(OutDir)libmyhello.aLIBS += $(SOURCEDIR)/libmyhello.a第 1个是输出目录,第 2个源程序目录,按自已习惯任选 1个,之后 copy文件libmyhello.a到你选择的目录中在 cpp文件#include hello.hqt使用动态库copy文件 libmyhello.so到指定的链接库路径 /lib 或 /usr/local/lib在 qt creator的 pro文件添加LIBS += libmyhello.so在 cpp文件#include hello.hextern C文件 hello.h中有 extern C关键字,表示在 c+环境中调用 c函数qt本身是由 c+类构建的,因此当使用.c 文件时,此关键字必须加上
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号