成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C++ kdevelop基本概念解析

開發 后端
我們在這篇文章中為大家介紹的主要是針對C++ kdevelop來進行交叉編譯的方法。那么具體的操作步驟和一些應用注意事項將會在這里為大家詳細介紹。

C++編程語言中有很多內容時比較高深的,即便是我們經常使用的一些功能,其中也有很多東西值得我們去深入的研究。在這里我們將會為大家詳細介紹一下有關C++ kdevelop的相關內容,讓大家體驗一下其中的特點。#t#

用C++ kdevelop進行交叉編譯的方法。

首先提一下,我這篇文章,對于那些喜歡使用繁瑣開發工具的達人們可以無視。

嵌入式的linux開發中,要建立的項目通常是三種,一是C或C++的工程。二是QT/E的工程,三是內核驅動模塊工程。管理三種工程,網上流傳的方法大多是用autotool或qmake工具生成MAKEFILE,這兩種工具使 用極其繁瑣,尤其是autotool工具集,還是一“集”,其中,還要手工修改一些文件,其繁瑣讓人望而卻步。而內核模塊的MAKEFILE則更是要手工編輯才行了,在實際工作中,用上述進行工程管理,頻頻出錯,嚴重影響工作效率。而linux的許多發行版中都已集成了C++ kdevelop這個IDE,其可以對工程進行很好的管理,而且它的編輯器又自帶有代碼縮進,代碼補全等功能,十分好用。但是許多嵌入式工程師因為不知如何

使用kdevelop進行嵌入式開發所需的交叉編譯,而放棄了它,實在可惜。我在實際工作中,也先是使用了上述的方法,苦不堪言,而后才模出了在kdevelop3中進行交叉編譯的方法,工作效率明顯提升。

我用的是Fedroa6的linux發行版,其自帶kdevelop3和QT3的開發環境。下面的講述都是在這個系統中實際可行的。在其它系統中應該也是這樣的。

我們用來開發ARM嵌入式系統時,常用到三種工程模板,第一種是C的簡單的hello模板,C++的簡單的hello工程模板。兩個模板都是kdevelop調用autotool工具集進行工程管理的。關于這個工具集,網上有很多資料,就不多說了。第二種是QMAKE工程模板,它是調用QT的QMAKE工具來進行工程管理的。第三種,就是linux內核模塊工程模板,它由kdevelop自身來管理。下面,我就具體講述一下如何在這種工程模板中進行交叉編譯。

第一種:kdevelop調用autotool工具集進行工程管理,它要進行交叉編譯的設置是最簡單的。只需在C++ kdevelop的工程->工程選項的對話框中打開配置選項欄作如下設置,在常規欄中,在“配置參數”中添加一項“--host=arm-linux”,在CPPFLAGS中,加入“-I/usr/local/arm/3.4.1/arm-linux/include”(這是我用的交叉編譯器,你要設成你的,以下同),在LDFLAGS欄中,輸入“-L/usr/local/arm/3.4.1/arm-linux/lib”,在C欄中,CC中加入“/usr/local/arm/3.4.1/bin/arm-linux-gcc”,在CPP欄中,CXX中加入“/usr/local/arm/3.4.1/bin/arm-linux-g++”。好了,選擇構建->構建工程,交叉編譯成功。這種模板的設置是最簡單的,設置后不用做任何處理,即可編譯成功。(這是最簡單的,卻是我最后才摸出來的,費了很多時間。主要是卡在配置參數中沒有加入host=arm-linux,查了很多資料,才解決問題。)

第二種:kdevelop是調用QMAKE進行工程管理的。設置到是容易的。就是在工程選項的MAKE選項中,添加四個環境變量。分別是QMAKESPEC,值為“/opt/qt-3.3.4-target/mkspecs/qws/linux-arm-g++”,QTDIR,值為“/opt/qt-3.3.4-target”,QTINC,值為“/opt/qt-3.3.4-target/include”,QTLIB,值為“/opt/qt-3.3.4-target/include”,其中/opt/qt-3.3.4-target,是我的交叉編譯的QT/E庫所在目錄。好了,設置完了,但如果你之前曾經對工程編譯過(在開發嵌入式QTE時,這是常有的情況,主要是為了測試一下界面的正確性),你這時再構建工程,就會報錯,你要選擇清理工程,還要刪除工程所在目錄下所有的makefile文件,然后再構建工程就會成功。

第三種:C++ kdevelop是自身在管理此工程的。沒有什么可以設置的地方,要想它交叉編譯,只有直接修改makefile文件了。打開makefile文件,將其中的KDIR = /lib/modules/$(CURRENT)/build更改為KDIR =/root/utu-linux_V1.5.3 (這是我的內核樹所在目錄。也就是交叉編譯在開發板上使用的linux的那個目錄),保存。好了,選擇“構建工程”,交叉編譯成功。如果報錯,則先選擇“清理工程”即可。簽于kdevelop管理此項工程時不是很理想,比如,無法進行多文件的驅動編譯。建議用網上提供的makefile模板修改后直接替換原來的makefile。考試,大提示把模板附在下面。

  1. ifeq ($(KERNELRELEASE),)  
  2. KERNELDIR ?= /root/utu-linux_V1.5.3  
  3. PWD := $(shell pwd)  
  4. modules:  
  5. $(MAKE) -C $(KERNELDIR) M=$(PWD) modules  
  6. modules_install:  
  7. $(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install  
  8. clean:  
  9. rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions  
  10. PHONY: modules modules_install clean  
  11. else  
  12. obj-m :xray.o  
  13. xray-objs :=xray-driver.o hwdriver.o  
  14. endif 

好了,到此,你基本就可以完全在C++ kdevelop下進行嵌入式的開發和交叉編譯了,怎么樣,是不是覺得工作 效率大大提高了呢。

責任編輯:曹凱 來源: 博客園
相關推薦

2010-02-02 13:41:01

C++類繼承

2010-02-02 10:33:22

C++引用

2010-02-03 13:22:07

C++時間

2010-02-03 11:11:18

C++類型轉換

2010-02-02 15:30:05

C++ include

2010-02-01 17:24:41

C++循環語句

2010-02-03 14:36:47

C++仿函數

2014-04-16 15:11:19

Spark

2010-02-05 17:34:37

C++函數模板

2010-02-06 14:04:58

C++內存使用機制

2010-02-04 13:56:24

C++類模板特化

2010-02-04 10:08:00

C++靜態成員函數

2010-02-01 14:07:12

C++多態性

2010-02-04 17:39:48

C++字符串類型

2010-02-06 15:58:10

C++集合初始化

2010-02-05 09:57:25

C++中英文字符串

2010-02-04 17:32:43

C++中C風格字符串

2010-04-19 11:22:24

無線天線

2011-03-28 11:05:17

ODBC

2010-02-04 14:01:43

C++非類型類模板參數
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: av香蕉| 欧美日韩精品免费 | 国产传媒在线观看 | 久草在线青青草 | 欧美精选一区二区 | 天天躁日日躁狠狠躁2018小说 | 91精品国产综合久久婷婷香蕉 | 国产激情精品一区二区三区 | 成人国产在线观看 | 欧美日韩在线播放 | 成人性生交大片免费看r链接 | 亚洲视频区 | 亚洲精品电影网在线观看 | 最新国产精品精品视频 | 久久久久久久一区 | 九九亚洲 | 欧美电影在线观看网站 | 国产成人精品久久二区二区91 | 亚洲国产精品久久 | 成人欧美一区二区三区在线播放 | 成人影院免费视频 | a在线视频 | 亚洲天堂av在线 | 亚洲精品一区中文字幕乱码 | 免费h视频 | 亚洲在线久久 | 欧美激情在线精品一区二区三区 | 精品久久一区 | av在线一区二区三区 | 久久久久亚洲精品 | 亚洲一二三在线观看 | 久久91av| 九九久久99 | 日本成人中文字幕 | 欧美一区二区免费在线 | 成人免费视频网站在线看 | 国产精品一级在线观看 | 国产精品精品视频一区二区三区 | 一区在线播放 | 日本人爽p大片免费看 | 欧美日韩国产三级 |