2013-07-26 39 views
0

我只是用模糊邏輯庫(eFLL庫)編寫模糊代碼。我在linux環境中使用它,並嘗試用g ++編譯它。我在g ++路徑中刪除了該庫。但這些錯誤來到我身上,我不知道這些是什麼。我做了一個Makefile,並試圖解決這個問題,但沒有什麼好發生。有誰知道我該如何解決這個問題?與庫有關的錯誤

的代碼的一部分是這樣的:

include <iostream.h> 

#include "../FuzzyRule.h" 

#include "../FuzzyComposition.h" 

#include "../Fuzzy.h" 


void setup(){ 

Fuzzy* fuzzy = new Fuzzy(); 

FuzzyInput* Threat = new FuzzyInput(1); 


FuzzySet* lowThreat = new FuzzySet::FuzzySet(0, 1.875, 1.875, 3.75), 

誤差的一部分是這樣的:

fuzzycode2.cpp :(文本+ 0×23):未定義參考`模糊: :模糊() '

fuzzycode2.cpp :(文本+ 0x61):未定義參照 `FuzzyInput :: FuzzyInput(int)的'

fuzzycode2.cpp :(文本+爲0xBB):未定義參照 `FuzzySet :: FuzzySet(浮動,浮動,漂浮,浮動)」

fuzzycode2.cpp :(文本+ 0xed):未定義參照 `FuzzyIO :: addFuzzySet(FuzzySet *) '

fuzzycode2.cpp :(文本+ 0x129):未定義參照 `FuzzySet :: FuzzySet(浮動,浮動,漂浮,浮動)'

+3

您是否告訴鏈接器實際鏈接到庫? –

+1

你可以發佈啓動編譯的shell命令嗎? – collapsar

+5

''?你真的想把上一代的書籍丟掉! –

回答

2

將頭文件包含到C++文件中是不夠的。您還需要同時連接,例如到指定庫文件和可能的位置:

g++ your-files-go-here -o some-name -Llocation-of-the-library -llibrary-name 

看着這個特殊的「圖書館」的頁面,似乎它只是由一堆對象文件的,你需要的放入一個庫中或在鏈接時明確包含。

+0

我總是使用g ++ mycode.cpp進行編譯。這是那個問題嗎? – sama

+0

這試圖單獨鏈接來自'mycode.cpp'的可執行文件。只編譯你需要使用'g ++ -c mycode.cpp'的代碼 –