天天看點

在Code::Blocks試用與安裝vim插件

部落客一直都是在linux下做開發,平時用的編輯器都是vim。可vim這的痛點是插對c++的補全做不夠好。我想要的是當我輸入string::時就能提示string下的方法。

無意間部落客看到了code::blocks,于是安裝上來玩玩。結果一玩就根本停不下來。

如下為code::blocks的主界面:

在Code::Blocks試用與安裝vim插件

它各種鮮明的高亮一下子就征服了部落客。主要是對c++的支援相當好。最令部落客喜愛的是它的自動調整代碼格式的功能,一點就能将整個工程的代碼按照指定的格式進行調整。

但是,部落客還是有點不習慣。沒有vim風格的編輯方式。必竟部落客早已習慣了vim的各種快捷方式,能在不摸滑鼠的前提下完成所有的開發工作。于是,部落客想安裝一個vim的插件。

部落客将 cbvike 用 git clone 到本地。打開看,裡面有vike-unix.cbp檔案,原來是code::blocks的工程。

按作者的說明,在編該工程時,必須要指定 wxwidget, codeblocks 的源碼路徑,至少是頭檔案的路徑。

在Code::Blocks試用與安裝vim插件

那就是說要找到 wxwidgets 與 code::blocks 的源碼啰。

之于code::blocks的頭檔案,隻需要安裝 code::blocks 的開發包就行。

<a href="http://my.oschina.net/hevakelcj/blog/661384#">?</a>

1

<code>sudo</code> <code>dnf </code><code>install</code> <code>codeblocks-devel -y</code>

安裝好了之後,在 /usr/include/ 路徑下便會有 codeblocks 子目錄。

在Code::Blocks試用與安裝vim插件

解壓出來,進入該源碼目錄,執行 ./configure,報錯:

在Code::Blocks試用與安裝vim插件

結果報依賴 gtk 2.0,這個安裝即可:

現在 code::blocks 與 wxwidgets 的源碼都準備好了。

我們在執行 cbvike 工程 build 時報編譯錯誤:

在Code::Blocks試用與安裝vim插件

為什麼有3個 "(invalid)" ?這是怎麼來的?打開 cbvike 的工程檔案 vike-unix.cbp 檔案看個究竟:

在Code::Blocks試用與安裝vim插件

這裡有3個參數沒有指定,沒設定便是"(invalid)",是以編譯報錯了。那在哪裡去指定呢?

settings --&gt; global variables...

在Code::Blocks試用與安裝vim插件

在 vike-unix.cbp 中都是大寫的,而在這裡則對應小字的名稱,如:cb_dll_path --&gt; cb_dll_path。

将 wx 指定為 wxwidgets 源碼路徑;cb_path 為 /usr/include/codeblocks;cb_release_type 填空格。

編譯~

報錯:sdk.h 找不到

在Code::Blocks試用與安裝vim插件

感覺這個 /usr/include/codeblocks/src/sdk/wxcintilla/include 路徑不對。沒有這個路徑,隻有:/usr/include/codeblocks/wxcintilla/include。于是修改 vike-unix.cbp 檔案:

在Code::Blocks試用與安裝vim插件

但還是沒有解決上述錯誤。我們去 wxwidgets 與 codeblocks 中去找,看 sdk.h 檔案在哪裡。

結果在 codeblocks 源碼目錄中找到。那這裡,可以還要改改:

在Code::Blocks試用與安裝vim插件

再編譯~

這次是報 wx/wxprec.h 頭檔案找不到,這個檔案在 wxwidgets 源碼中找到:./include/wx/wxprec.h

那得在 vike-unix.cbp 檔案中加一個 wxwidgets 的路徑:

在Code::Blocks試用與安裝vim插件
在Code::Blocks試用與安裝vim插件

查源碼:

在Code::Blocks試用與安裝vim插件

這是定義了 wxuse_xml 又沒有定義 wxuse_wchar_t 導緻的錯誤。

在wxwidgets源碼中找 "wxuse_wchar_t" 結果在 configure 中找到:

在Code::Blocks試用與安裝vim插件

那這個是由 wxuse_wchar_t 由 ac_cv_sizeof_wchar_t 決定,由這個值有輸出到 config.log 檔案中,如下l22221:

在Code::Blocks試用與安裝vim插件

在 config.log 中查得 ac_cv_sizeof_wchar_t 為 4 :

在Code::Blocks試用與安裝vim插件

而且在 confdefs.h 中已經定義了 "sizeof_wchar_t"(見l22222~22225)。

查 confdefs.h ,結果沒有找到這個檔案。

......... 

最終查找,configure生成的配置檔案是 ./lib/wx/include/gtk2-ansi-release-2.8/wx/setup.h

部落客在 wxwidgets 中也 make 了一下,過不了,也是跟上面一樣的問題。看來,如果解決了 wxwidgets 的編譯問題之後,cbvike 的編譯問題也應該迎刃而解了。

........

不折騰這個wxwidgets的編譯問題了。我們已在軟體源中找到 wxgtk 的源了:

在Code::Blocks試用與安裝vim插件

安裝之:

完成!

重新修改 wx 的值:為 /usr/include/wx-2.8/

重新編譯:

在Code::Blocks試用與安裝vim插件

這個可能要重新調整一下 vike-unix.cbp

在Code::Blocks試用與安裝vim插件

再編譯:

報找不到 wx/setup.h,部落客就将之前倒騰的 wxwidgets 下的 setup.h 複制過來。

再編譯,報:

在Code::Blocks試用與安裝vim插件

說我應該通過執行 wx-config 來擷取編譯選項。

我檢視 vike-unix.cbp,裡面:

在Code::Blocks試用與安裝vim插件

有這個,但我們可以在編譯日志中沒有看到 wx-config 有任何輸出。部落客手動執行了一下 wx-config,還真有内容:

那就來硬的,我們直接将下面這串複制到 vike-unix.cbp,覆寫 `wx-config --cflags`:

在Code::Blocks試用與安裝vim插件

找不到 tinyxml.h 檔案,這個好辦,安裝一個 tinyxml-devel 就可以了。

在Code::Blocks試用與安裝vim插件

這下是連結出錯了。說明編譯是過了的。

檢視連結日志:

在Code::Blocks試用與安裝vim插件

可看連結庫路徑沒有設定。進 settings --&gt; gobal variable ... 中,将 cb_dll_path 設定成 /usr/lib64。

再是報上面的錯誤。不過,從上面的連結指令可以看到,隻有 lcodeblocks,沒有連結 wx 的庫。而wxevthandler應該是wx庫的内容。

在 /usr/lib64,查 find -name 'libwx_*.so' ,得到這個多:

到底應該連結哪一個呢?

看看 vike-unix.cbp 中關于連結的參數:

在Code::Blocks試用與安裝vim插件

執行一下:wx-config --libs,結果:

又是編譯過程中 wx-config 執行無效引起的。按上面一樣的解決辦法,直接将 wx-config --libs 的結果直接替換 vike-unix.cbp 中的 wx-config --libs:

在Code::Blocks試用與安裝vim插件

再連結:

在Code::Blocks試用與安裝vim插件

通過了!

那現在,再重新編譯一下 release 目标:

在Code::Blocks試用與安裝vim插件

檢視cbvike目錄的build目錄下,生成了這幾個檔案:

在Code::Blocks試用與安裝vim插件

現在的問題是,如何安裝這個插件?

在 code::blocks 中,plugins--&gt;manage plugins...:

在Code::Blocks試用與安裝vim插件

然後找到cbvike.cbplugin,結果安裝時報錯:

在Code::Blocks試用與安裝vim插件

搞錯沒?我們這裡有libcbvike.so,它卻去找cbvike.so?

研究了半天,發現将 cbvike.cbplugin 重命名為 libcbvike.cbplugin 就能安裝成功:

在Code::Blocks試用與安裝vim插件

那現在最後一個問題:怎麼開啟與關閉 vim 插件功能?

查為,重新啟動一下code::blocks,cbvike功能便開啟了。

之前有遇到 vike-unix.cbp 中 "wx-config --cflags" 與 "wx-config --libs" 未生效問題。

在Code::Blocks試用與安裝vim插件

這個問題是由于先開了code::blocks後才安裝的 wxgtk-devel,是以 wx-config 在每次編譯的時候沒有生效。

關閉code::blocks後再打開就可以了,不需要像上面那樣直接修改 vike-unix.cbp 檔案。

上一篇: vsftp

繼續閱讀