簡體   English   中英

如何將 static 庫 (.a) 添加到 C++ 程序中?

[英]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;
}

然后我先編譯庫:

  1. g++ foo.cpp
  2. ar rc libfoo.a foo.o

現在我想在一些文件中使用這些庫,例如:

// 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM