首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

linux静态库啊

2012-05-21 
linux静态库求助啊。。。。有一个api.h 还有两个文件a.h a.cpp b.h b.cpp,如何将a.h a.cpp b.h b.cpp 封装成一

linux静态库求助啊。。。。
有一个api.h 还有两个文件a.h a.cpp b.h b.cpp,如何将a.h a.cpp b.h b.cpp 封装成一个lib,其中api.h是可以对外开放的,a.h和b.h是不开放的。
直接写成
g++ -c -o a.o a.cpp 
g++ -c -o b.o b.cpp
然后把a.o 和b.o封装成libab.a,这样对吗,如果这样对,那么a.h和b.h有什么用吗?

[解决办法]
a.h和b.h在编译时有用,否则编译器不知道函数的原型,不如何编译链接函数。
[解决办法]
参考:
在Linux环境下编写和使用静态函数库
[解决办法]
直接写成
g++ -c -o a.o a.cpp 
g++ -c -o b.o b.cpp
然后把a.o 和b.o封装成libab.a,这样对吗,如果这样对,那么a.h和b.h有什么用吗?

手动用ar生成.a,这样是可以的, a.h b.h在编译的时候如果被 include,必须能让编译器可见,比如在当前工作目录,如果不是,你得 -Ixxinclude/ 让编译器知道在哪找到, a.h b.h的作用局限于编译a.cpp b.cpp 

[解决办法]
简单来说 是对的 .h是给别的文件申明用的

热点排行