![](/img/trans.png)
[英]Howto handle C++ static lib dependencies of third party static library
[英]howto add a static library (.a) into a C++ program?
我想知道如何在我創建的 C++ 中使用 static 庫,首先是 lib:
// header: foo.h
int foo(int a);
.
// code: foo.cpp
#include foo.h
int foo(int a)
{
return a+1;
}
然后我先編譯庫:
現在我想在一些文件中使用這些庫,例如:
// prog.cpp
#include "foo.h"
int main()
{
int i = foo(2);
return i;
}
我現在必須如何編譯這些? 我做了:
g++ -L. -lfoo prog.cpp
但收到錯誤,因為找不到 function foo
你要:
g++ -L. prog.cpp -lfoo
不幸的是,ld linker 對庫的順序很敏感。 當試圖滿足 prog.cpp 中未定義的符號時,它只會查看命令行中出現在 prog.cpp 之后的庫。
您也可以只在命令行上指定庫(必要時使用路徑),而忘記 -L 標志:
g++ prog.cpp libfoo.a
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.