2013-07-26 111 views
1

我已經下載了mimetic library安裝文件, 並遵循INSTALL說明。嘗試使用外部庫進行編譯時出錯

./configure 

一個腳本,它在檢查一系列事物後創建make文件。

make 

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

make install 

似乎做了很多,但我似乎才注意到這個唯一的事情就是一個模擬目錄 出現在/ usr /本地/包括所有的頭文件。

比我嘗試編譯最簡單的主文件可能: (如圖書館網站提供:original example):4.1

#include <mimetic/mimetic.h> 

using namespace mimetic; 

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

我用下面的命令(在CentOS 5.7,gcc版本編譯。 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構造函數聲明出現在:/usr/local/include/mimetic/mimeentity.h 當我做mimeentity搜索我得到以下幾點:

/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(); 

它編譯。

回答

2

由於在編譯測試源文件時沒有引用庫,因此會出現鏈接器錯誤。它需要是這樣的:

g++ mimetic.cpp -l<libraryname> 

其編譯的原因,當您添加括號是,你真的宣佈了一個名爲「我」的功能,它返回一個MimeEntry。編譯時,它不會做你想要的。

2

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

  1. 確保-l選項指定的模擬庫
  2. 添加-l'the名的最基模擬庫」的位置。我的猜測是-lmimetic
  3. 爲標題的位置添加-I(即大寫字母i)選項。
相關問題