2012-07-10 93 views
1

我試圖遵循編程 - 使用C的原則和實踐,並且我很喜歡它。上週一開始,我遇到了一個阻礙了進一步發展的問題。我需要安裝FLTK。FLTK-1.1.10與Microsoft Visual C++ 2010 Express

成功管理構建並運行FLTK-1.3.0(請參閱我的其他問題/解決方案)後,我遇到了無法使用Stroustrup的頭文件運行的問題。我認爲這是由於版本不同,但不確定。

所以我回來試圖讓1.1工作。

我還沒有設法使用MVC++ 2010從他的網站上構建FLTK-1.1.10或fltk-1.1.9。

因此,這導致我們的問題

1)如果我建立它使用的MinGW/MSYS,將它仍然能夠被從VC++運行? 我一直在努力弄清MinGW/Msys迄今爲止成功的一點點,所以我還沒有建立任何東西,所以我不能自己測試這個。

2)如果它不會運行MinGW構建,有沒有辦法用VC++來構建它?

從我的理解 -建築將在FLTK目錄中創建更多的文件,這將允許我使用它。 -MinGW對VC++使用了不同的編譯器,它們不能很好地一起玩

我覺得我在這部分浪費了很多時間,但是這是一個很好的學習體驗。可能對我的血壓不太好。

我想在這一點上我的主要選擇是移動到另一個IDE。 Eclipse看起來相當不錯。但我真的想解決這個問題,而不是離開VC++。

我的上一篇文章(Microsoft 2010 visual c , installing FLTK)詳細介紹了編譯過程中發生的錯誤,以防感興趣。

我已經嚴重搜索了這個問題,還沒有找到一個真正的解決方案。我希望這篇文章能夠爲我和其他程序員澄清這個問題。

+0

仍然沒有運氣得到任何東西。試圖找出如何使用Cygwin,MinGW等,但它們不是非常用戶友好的。必須構建過時版本的FLTK才能使用提供的標題運行,這非常令人沮喪。 – David 2012-07-12 05:17:29

+0

這很奇怪。在回答這個問題時,下面正在進行一次談話,現在它似乎消失了。如果有人有解決這個問題,我很樂意聽到它。或者可能發佈一個使用該書中代碼的工作解決方案? – David 2012-07-18 16:12:47

+0

經過絕對瘋狂的時間,試圖找到解決這個問題的辦法,我想我會放棄並轉移到另一個IDE。如果有人能夠解決這個問題,我會很高興聽到它。 FKTL 1.3的作品,但我還沒有得到它與頭文件。 FLTK 1.1.10或.9不會生成。哦,至少我學到了......東西,也許...... – David 2012-07-18 16:59:21

回答

1

嗯,這讓我感覺很長,但我終於明白了。 這似乎是土地的奠定。

  1. FLTK 1.3.0與頭文件兼容,但graph.cpp需要 稍作修改以允許運行。
  2. FLTK 1.1.10將無法​​使用Visual Express 2010正確構建,但 將與2008版一起使用。
  3. 頭文件適用於兩者,但您需要對Graph.cpp進行小小更改 以使它們可以正常工作。

在經歷了所有這些工作的挫折之後,我認爲爲可能處於類似情況的人編寫一步一步的指南是公平的。本書針對的是新手程序員,而不是已經能夠調試他的頭文件和cpp文件的人。我很抱歉,解決方案有點冗長,但我認爲它只適用於像我這樣可能面對它的人。

視覺快遞二千零十分之二千零八引導

1)建立FLTK。不像聽起來那麼容易,但不是太糟糕。在2008年使用FLTK 1.1.0。在2010年使用1.3.0。

  1. 2010年看到的解決方案,我寫到這裏 - Microsoft 2010 visual c , installing FLTK

  2. 對於2008年運行C:\ FLTK-1.1.10 \ VC2005 \ fltk.lib.vcproj代替。

    如果在構建過程中有任何錯誤,您將需要找出問題所在。

2)建立一個新的項目

  1. 2010年只需按照上述
  2. 的指南2008年 - 基本上是相同的想法,但有一些變化
    1. 確保將1.3.0的所有引用更改爲1.1.10
    2. 在輸入部分中,而不是使用分號分隔.lib文件;請使用空格,以便鏈接器> Input> Additional dependencies將如下所示:c:\ fltk-1.1.10 \ lib \ fltk.lib wsock32.lib comctl32.lib c:\ fltk-1.1.10 \ lib \ fltkjpeg。 LIB C:\ FLTK-1.1.10 \ LIB \ fltkimages.lib

3)運行一個測試程序,以確保您的FLTK工作正常,嘗試 -

#include <FL/Fl.h> 
#include <FL/Fl_Window.h> 

int main() 
{ 
Fl_Window win(320,200); 
win.show(); 
return Fl::run(); 
} 

如果有這裏有任何錯誤,那麼你將無法繼續。

4)將文件his website放入正確的文件夾中。

  1. 對於2008年在一個名爲headertest項目 -
    1. C:\用戶\用戶\文檔\ Visual Studio 2008的\項目\ headertest \ 放std_lib_facilities.h這裏
    2. C:\用戶\ User \ Documents \ Visual Studio 2008 \ Projects \ headertest \ headertest \ 將其他所有.cpp和.h文件從他的網站放在這裏,當然你的headertest.cpp和.h(如果需要)將在這裏創建。
    3. 確保您已按照上述指南中的步驟正確設置了項目。
  2. 2010年在一個名爲Fri_FLTK_Test項目 -
    1. 執行上面一樣,但是把在2010年的相當於文件 - C:\用戶\用戶\文檔\ Visual Studio 2008的\項目\ headertest 和..Visual Studio 2010的\項目\ Fri_FLTK_Test \ Fri_FLTK_Test

5)h和.cpp文件添加到您的活動項目。

  1. 只需右鍵單擊項目添加>現有項目 - 選擇默認目錄中的所有.h和.cpp文件。您將不需要添加.. \ std_lib_facilities.h,因爲您已經直接參考了這個。不要問我爲什麼,但這是有效的。

6)現在你會發現,如果你運行該項目,你會得到一堆錯誤,最重要的讀取 -

C:\用戶\用戶\文檔\ Visual工作室 2010 \項目\ fri_fltk_test \ graph.cpp(237):錯誤C2084:函數 'Graph_lib ::圈::圈(點,INT)' 已經有一個身體

7)我們可以解決這個問題打開Graph.cpp並註釋掉Circle :: Circle部分,如 -

//Circle::Circle(Point p, int rr) // center and radius 
//:r(rr) 
//{ 
// add(Point(p.x-r,p.y-r));  // store top-left corner 
//} 

8)保存更改並再次運行你的項目,你會發現它的工作原理! 9)現在最好的部分,放在代碼的書(或 複製 - !Chapter13/chapter.13.2.cpp並運行它應該工作

任務完成

認爲我理應之後啤酒。!花了我大量的時間想一想,看看Msys,g ++,Netbeans和其他一些與IDE有關的東西,但是讓它在我最初的選擇上工作是一種很好的感覺,我希望本指南能夠幫助其他人在類似的情況下。

特別感謝從Dream.In.Code論壇的Skydiver爲他提供這個問題的幫助

0

難道是因爲您正在運行Express版本嗎?我遇到過類似的問題,不得不切換到舊版本的Express。

你見過這篇文章嗎?

http://answerpot.com/showthread.php?275672-FLTK+%26+Visual+C%2B%2B+Express%3F

-Si。

+0

感謝您的回覆!其實我已經看過那篇文章了。但再看一遍很好。它可能與它被表達有關,但我越想它,我越懷疑它。我有FLTK 1.3正常工作,當我開始使用他的頭文件時,它出錯了。 – David 2012-07-19 14:59:53

相關問題