歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Ubuntu 13.04/CentOS 6.4 下C++開發時的相關設置

Ubuntu 13.04/CentOS 6.4 下C++開發時的相關設置

日期:2017/2/28 14:36:48   编辑:Linux教程

Ubuntu 13.04/CentOS 6.4 下C++開發時的相關設置

一、基本設置

首先,為了可以使我們的c++ 可以找到 iostream類,std標准庫,我們需要在C/C++ General->Paths and Symbols 中添加include dictionarys.

當然,從c/c++ Build ->settings->gcc c++ complier中也可以添加。這樣,我們便可以解決include包含問題。

其次,On a project with two target architectures each with its own build configuration (the main target is an embedded AVR platform; the second target is my local Linux PC for running unit tests) I found it necessary to setPreferences -> C/C++ -> Indexer -> Use active build configuration as well as to add/usr/include/c++/4.7,/usr/includeand/usr/include/c++/4.7/x86_64-linux-gnu toProject Properties -> C/C++ General -> Paths and Symbols and then to rebuild the index.

另外,makefile也要讓eclipse自動生成。

二、關於靜態鏈接庫的問題。

首先,我們自己先做好了一個靜態鏈接庫,然後我們新建一個文件夾mylib,把生成的*.a放進去,再在這個文件夾下新建一個include文件夾,把頭文件放進去。

庫文檔在連接(靜態庫和共享庫)和運行(僅限於使用共享庫的程式)時被使用,其搜索路徑是在系統中進行配置的。一般 Linux

系統把 /lib 和 /usr/lib

兩個目錄作為默認的庫搜索路徑,所以使用這兩個目錄中的庫時無需進行配置搜索路徑即可直接使用。對於處於默認庫搜索路徑之外的庫,需要將庫的位置添加到

庫的搜索路徑之中。配置庫文檔的搜索路徑有下列兩種方式,可任選其一使用:

在環境變量 LD_LIBRARY_PATH中指明庫的搜索路徑。

在 /etc/ld.so.conf 文檔中添加庫的搜索路徑。 將自己可能存放庫文檔的路徑都加入到/etc/ld.so.conf中是明智的選擇 ^_^

添加方法也極其簡單,將庫文檔的絕對路徑直接寫進去就OK了,一行一個。例如:

/usr/X11R6/lib

/usr/local/lib

/opt/lib

最後,要在終端下執行/sbin/ldconfig,使配置生效。

需要注意的是:第二種搜索路徑的配置方式對於程式連接時的庫(包括共享庫和靜態庫)的定位已足夠了,但是對於使用了共享庫的程式的執行還是不夠的。這是因為為了加快程式執行時對共享庫的定位速度,避免使用搜索路徑查找共享庫的低效率,所以是直接讀取庫列表文檔/etc/ld.so.cache從中進行搜索的。/etc/ld.so.cache 是個非文本的數據文檔,不能直接編輯,他是根據/etc/ld.so.conf中配置的搜索路徑由 /sbin/ldconfig命令將這些搜索路徑下的共享庫文檔集中在一起而生成的(ldconfig 命令要以root權限執行)。因此,為了確保程式執行時對庫的定位,在 /etc/ld.so.conf中進行了庫搜索路徑的配置之後,還必須要運行/sbin/ldconfig 命令更新 /etc/ld.so.cache文檔之後才能夠。ldconfig,簡單的說,他的作用就是將/etc/ld.so.conf列出的路徑下的庫文檔緩存到/etc/ld.so.cache以供使用。因此當安裝完一些庫文檔,(例如剛安裝好glib),或修改ld.so.conf增加新的庫路徑後,需要運行一下/sbin/ldconfig使任何的庫文檔都被緩存到ld.so.cache中,假如沒做,即使庫文檔明明就在/usr/lib下的,也是不會被使用的,結果編譯過程中抱錯,缺少xxx庫,去查看發現明明就在那放著,搞的想大罵computer蠢豬一個。^_^

在程式連接時,對於庫文檔(靜態庫和共享庫)的搜索路徑,除了上面的配置方式之外,還能夠通過 -L 參數顯式指定。因為用 -L配置的路徑將被優先搜索,所以在連接的時候通常都會以這種方式直接指定要連接的庫的路徑。

前面已說明過了,庫搜索路徑的配置有兩種方式:在環境變量LD_LIBRARY_PATH 中配置連同在/etc/ld.so.conf 文檔中配置。其中,第二種配置方式需要 root權限,以改變 /etc/ld.so.conf 文檔並執行/sbin/ldconfig 命令。而且,當系統重新啟動後,任何的基於GTK2 的程式在運行時都將使用新安裝的 GTK+ 庫。不幸的是,由於GTK+版本的改變,這有時會給應用程式帶來兼容性的問題,造成某些程式運行不正常。為了避免出現上面的這些情況,在GTK+及其依賴庫的安裝過程中對於庫的搜索路徑的配置將采用第一種方式進行。這種配置方式無需 root 權限,配置也簡單:

$ exportLD_LIBRARY_PATH=/opt/gtk/lib:$LD_LIBRARY_PATH

能夠用下面的命令查看 LD_LIBRAY_PATH的配置內容:

$ echo $LD_LIBRARY_PATH

至此,庫的兩種配置就完成了。

當敲完代碼後,直接按project > run,系統提示錯誤:" launch failed. Binary file not found.” 後來查完資料後才知道原來在linux下必須build 完後才可以運行,所以每次要運行project時,必須先按ctrl + b,build時會提示有無錯誤。build 成功後程序才可以運行。

binary not found 其實主要是鏈接的問題,這裡的方法比較簡單。

projrct-》properties-》c/c++ build --》Environment--》PATH 選replace native environment with specified one

新建項目後,點擊run>>run configurations,雙擊左側一列的c/c++ local applation,新建一個運行配置,在main中點擊Browse選擇你的項目,在common中勾選“debug”和“run”,這樣就好使了。

I even faced this error and searched a lot to fix. Fortunately, I figured it out myself.

The following are the things you need to make sure they are set:

Windows > Preferences > C/C++ > New CDT project wizard > Makefile Project > Binary Parsers

a) Set it to Windows PE Parser if you are on windows.

b) Set it to Cygwin PE Parser if you are using Cygwin

Windows > Preferences > C/C++ > Environment

Now click on "select" and select "Path" variable so that you add you path variables in Eclipse.

Now its all done!

All you have to do is write a test program and press Ctrl+B (Build all; there is a button on menu bar) and after that click "Run".

After all the setup is done.Go to eclipse project --> build all or ctrl + B then eclipse automatically build up the binaries and other stuffs now run your project

Linux平台下用Eclipse編寫C++程序出錯!

所用環境是Fedora16 + GCC + Eclipse CDT,可是我隨便寫個簡單的程序,編譯,總是提示:“Launch failed,binary not found”。請問如何解決?

1.已試過在“項目”——“屬性”——“C++ Build”——“Settings”——“Binary Parses”裡面勾選“GNU Elf Parses”和“PE Windows Parses”,仍然無用。

2.已試過在“窗口”——“首選項”——“C/C++”——“New CDT Project Wizard”——“Makefile Project”——“Binary Parses”裡面勾選“GNU Elf Parses”和“PE Windows Parses”,還是無用。

3.已試過先按Ctrl+B編譯後再運行,無用。

4.已試過文件名加上後綴.cpp和.c,無用。

Project->Properties->C/C++Build->Settings->Binary Parsers

勾選GNU Elf Parser和Elf Parser

然後千萬千萬別忘了Project->Build All (Ctrl+B), 再run(Ctrl+F11)

如果看到項目下面出來一項名為Binaries, Congradulations! 配置成功,可以run了!

3、還不行?

檢查你的文件名是否為xxx.cpp? 而且xxx中不能含有“.”之類的符號

新建了一個項目後,Ctrl+F11可以運行,但只要 ,然後再Ctrl+F11運行,出現"launch failed.Binary not found"錯誤,解決方法如下:

新建項目後,點擊run>>run configurations,雙擊左側一列的c/c++ local applation,新建一個運行配置,在main中點擊Browse選擇你的項目,在common中勾選“debug”和“run”,這樣就好使了。

更多Ubuntu相關信息見Ubuntu 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=2

更多CentOS相關信息見CentOS 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=14

Copyright © Linux教程網 All Rights Reserved