簡體   English   中英

嘗試使用外部庫進行編譯時出錯

[英]Errors while trying to compile with external libraries

我已經下載了mimetic庫安裝文件,並按照INSTALL說明進行操作。

./configure

檢查一系列事物后創建make文件的腳本。

make 

在原始文件夾中出現不同的.o和.lo文件后,編譯cpp文件。

make install 

似乎做了很多,但我似乎唯一注意到的是,一個模仿目錄出現在/ usr / local / include下,包含所有頭文件。

比我嘗試編譯最簡單的主文件可能:(在庫網站提供: 原始示例

#include <mimetic/mimetic.h>

using namespace mimetic;

int main()
{
    MimeEntity me;
    return 0;
}

我正在使用以下命令進行編譯(在CentOS 5.7上,gcc版本:4.1.2):

g++ mimetic.cpp

我得到的錯誤:

/tmp/ccWnsteO.o: In function `main':
mimetic.cpp:(.text+0x80): undefined reference to `mimetic::MimeEntity::MimeEntity()'
mimetic.cpp:(.text+0x91): undefined reference to `mimetic::MimeEntity::~MimeEntity()'
collect2: ld returned 1 exit status

據我所知,找到了頭文件,但缺少源/庫本身。

當我搜索mimeentity時,MimeEntity構造函數聲明出現在:/usr/local/include/mimetic/mimeentity.h中我得到以下內容:

/home/mimetic-0.9.7/mimetic/mimeentity.o
/home/mimetic-0.9.7/mimetic/mimeentity.h
/home/mimetic-0.9.7/mimetic/mimeentitylist.h
/home/mimetic-0.9.7/mimetic/mimeentity.cxx
/home/mimetic-0.9.7/mimetic/.libs/mimeentity.o
/home/mimetic-0.9.7/mimetic/mimeentity.lo
/home/mimetic-0.9.7/mimetic/.deps/mimeentity.Plo
/usr/local/include/mimetic/mimeentity.h
/usr/local/include/mimetic/mimeentitylist.h 

我嘗試過使用庫的搜索路徑,但出現了同樣的錯誤

g++ mimetic.cpp -L/home/mimetic-0.9.7/mimetic/

當我嘗試使用該行編譯主mimetic.cpp文件時,發生了其他奇怪的事情

MimeEntity me;

變成

MimeEntity me();

它匯編。

您收到鏈接器錯誤只是因為編譯測試源文件時沒有引用庫。 它需要是這樣的:

g++ mimetic.cpp -l<libraryname>

它在你添加大括號時編譯的原因是你真的聲明了一個名為'me'的函數,它返回一個MimeEntry。 雖然它編譯,但它沒有做你想要的。

您用來構建模仿示例的命令似乎不完整。 您正在指定庫搜索補丁(-L),但不指定庫本身。

  1. 確保-L選項指定了模仿庫的位置
  2. 添加-l'the-name-of-mimetic-library'。 我的猜測是 - 模仿
  3. 為標題的位置添加-I(即大寫i)選項。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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