如何用g ++创build一个静态库?
有人可以告诉我如何创build一个.cpp和一个.hpp文件的静态库吗? 我是否需要创build.o和.a? 我也想知道如何编译一个静态库,并在其他.cpp代码中使用它。 我有header.cpp , header.hpp . 我想创buildheader.a 。 在test.cpptestingheader.a。 我正在使用g ++进行编译。 
创build一个.o文件:
 g++ -c header.cpp 
将此文件添加到库中,如有必要,创build库:
 ar rvs header.a header.o 
使用库:
 g++ main.cpp header.a 
 您可以使用ar实用程序创build.a文件,如下所示: 
 ar crf lib/libHeader.a header.o 
  lib是一个包含所有库的目录。 以这种方式组织代码并分离代码和对象文件是一种很好的做法。 让一切都在一个目录中看起来很丑。 上面的行在目录lib创buildlibHeader.a 。 所以,在你目前的目录中,做: 
 mkdir lib 
 然后运行上面的ar命令。 
链接所有库时,可以这样做:
 g++ test.o -L./lib -llibHeader -o test 
  -L标志将得到g++将lib/目录添加到path中。 这样, g++知道在查找libHeader时要search什么目录。  -llibHeader标记要链接的特定库。 
test.o是这样创build的:
 g++ -c test.cpp -o test.o 
有人可以告诉我如何创build一个.cpp和一个.hpp文件的静态库吗? 我是否需要创build.o和.a?
是。
创build.o (按照常规):
 g++ -c header.cpp 
创build存档 :
 ar rvs header.a header.o 
testing :
 g++ test.cpp header.a -o executable_name 
请注意,仅使用一个模块进行归档似乎有点没有意义。 你可以轻松地写下:
 g++ test.cpp header.cpp -o executable_name 
不过,我会给你一个怀疑的好处,就是你的实际使用情况有点复杂,有更多的模块。
希望这可以帮助!