怎樣寫編譯配置文件
⑴ windows下用命令行編譯並運行java工程,怎樣編譯引用的多個jar包和配置文件.xml呢
javac -classpath c:\lib\log4j.jar;D:\lib\logging.jar src\org\myproject\*.java
還可以指定輸出目錄,如輸出到bin(bin目錄要預告建立好)
javac -classpath c:\lib\log4j.jar;D:\lib\logging.jar -d bin src\org\myproject\*.java
至於配置文件,因為要看實際的使用,可以用命令拷貝。如拷貝log4j.properties
/y myConfig\log4j.properties bin
⑵ 高通mdm9607 mcfg_sw.mbn配置編譯流程
1.未添加運營商mcfg_sw.mbn配置文件,存在設備找網速度慢的問題。
2.添加高通默認配置mcfg_sw.mbn,出現問題:
(1)設備插入移動卡,呼入會出現自動接聽。
(2)設備插入電信4G卡,無法4G上網。
(3)設備插入特定物聯網卡,UE無法正常切換對應運營商配置。默認切換至3GPP,導致無法正常上網。
3.使用QXDM 修改網路相關的nv參數,切換運營商卡後,nv參數配置失效。
1.設備搜網會根據對應運營商mcfg_sw.mbn中配置去搜尋相應的頻段,未添加則會導致設備輪詢所有頻段,從而導致駐網速度慢。
2.高通通過nv項中的參數來設置設備一些定製功能。
(1)查看nv850(CT電信默認配置為cs only)從而導致電信卡4G無法上網
PS域(Packet SwitchedDomain)為分組(交換)域,CS域(Circuit SwitchedDomain)為電路(交換)域。
通俗的說,打電話語音信號走的是CS,上網等數據業務信號走PS。
(2)查看nv74(CMCC移動卡默認配置為enable)nv74是控制電話自動接聽,因此出現移動卡設備呼入會出現自動接聽。
3.UE會根據插入運營商卡的iccid來切換相應mcfg_sw.mbn配置。物聯網卡採用專用號段,因此可能存在配置不支持導致無法正常切換運營商配置。
(由於這批移動物聯網卡iccid前幾位為898604,mbn未配置因此會導致UE無法正常切換mbn配置,導致無法上網。)
什麼是物聯網卡
4.使用QXDM修改參數後為何切換不同運營商卡後,nv配置參數會失效。
假設插入電信卡後,設備通過QXDM修改nv,改nv值並沒有寫入到mcfg_sw.mbn中,簡單理解為臨時參數。
當設備插入移動卡後,UE會根據iccid來切換mcfg_sw.mbn。它獲取的參數依然是從該文件內部讀取,修改的值未起到作用。
圖為運營商mbn配置,CU CMCC CT 分別對應聯通、移動、電信。其他為默認硬體軟體配置。
1.修改XML源文件
(1)路徑:modem_proc\mcfg\mcfg_gen\generic\china(有全球各個地區的運營商配置信息)
圖為生成cmcc mcfg_sw.mbn各個xml配置文件
(2)修改內容
CT:
CMCC:
目前只在已有的NvItemData項中修改參數,還未測試自己添加新的nv配置。
2.編譯流程
(1)編譯參數說明
(2)實際測試命令
a.進入/modem_proc/mcfg/build
b.編譯CT mbn命令:
perl build_mcfgs.pl --build_id=9607.genns.prod --configs=mcfg_sw:OpenMkt-Commercial --force-regenerate --force-rebuild --source-dir=generic/China/CT --xml
mbn文件生成路徑:/modem_proc/mcfg/configs/mcfg_sw/generic/China/CT/Commercial/OpenMkt
c.編譯CMCC mbn命令:
perl build_mcfgs.pl --build_id=9607.genns.prod --configs=mcfg_sw:Commercial-CSFB-SS-LocTech --force-regenerate --force-rebuild --source-dir=generic/China/CMCC --xml
mbn文件生成路徑:/modem_proc/mcfg/configs/mcfg_sw/generic/China/CMCC/CSFB/SS
3.出現問題:
(1)現象
Building MBN for mcfg_sw:Commercial-CSFB-SS-LocTech...
Could not open or create temporary file '/media/root/exdisk/workspace/L170_4K/modem_proc/mcfg/mcfg_gen/scripts/data/efs_files/cmcc/profile4'
沒有那個文件或目錄 at ../mcfg_gen/scripts/mcfg_write.pm line 1242.
(2)原因
源碼中該文件大小寫存在差異,去源碼中修改相應profile文件大小寫,問題解決。
4.xml新增移動物聯網卡支持
(1)找到移動對應的xml文件
(2)添加物聯網卡iccid前6位數字。
(3)重新編譯mcfg_sw.mbn文件,通過PDC tool重新load設備,測試成功。
⑶ 如何編譯linux內核
1、大概步驟:
1、安裝開發包組
2、下載源碼文件
3、.config:准備文本配置文件
4、make menuconfig:配置內核選項
5、make [-j #]
6、make moles_install:安裝模塊
7、make install :安裝內核相關文件
安裝bzImage為/boot/vmlinuz-VERSION-RELEASE (去boot目錄下查看)
生成initramfs文件
8、編輯grub的配置文件
2、編譯配置選項
配置內核選項
支持「更新」模式進行配置: make help
(a) make config:基於命令行以遍歷的方式去配置內核中可配置的每個選項
(b) make menuconfig:基於curses的文本窗口界面
(c) make gconfig:基於GTK (GNOME)環境窗口界面
(d) make xconfig:基於QT(KDE)環境的窗口界面
支持「全新配置」模式進行配置
(a) make defconfig:基於內核為目標平台提供的「默認」配置進行配置
(b) make allyesconfig: 所有選項均回答為「yes「
(c) make allnoconfig: 所有選項均回答為"no「
3、編譯
全編譯:make [-j #]
編譯內核的一部分功能:
a) 只編譯某子目錄中的相關代碼:
# cd /usr/src/linux
# make dir/
(b) 只編譯一個特定的模塊:
# cd /usr/src/linux
# make dir/file.ko
例如:只為e1000編譯驅動:
#make drivers/net/ethernet/intel/e1000/e1000.ko
4、編譯內核
如何交叉編譯內核:
編譯的目標平台與當前平台不相同;
# make ARCH=arch_name
要獲取特定目標平台的使用幫助
# make ARCH=arch_name help
# make ARCH=arm help
5、清理刪除
在已經執行過編譯操作的內核源碼樹做重新編譯:
需要事先清理操作:
# make clean:清理大多數編譯生成的文件,但會保留config文件等
# make mrproper: 清理所有編譯生成的文件、 config及某些備份文件
# make distclean: mrproper、 patches以及編輯器備份文件
卸載內核
刪除/lib/moles/目錄下不需要的內核庫文件
刪除/usr/src/linux/目錄下不需要的內核源碼
刪除/boot目錄下啟動的內核和內核映像文件
更改grub的配置文件,刪除不需要的內核啟動列表
需要解決更多linux問題,詳情請看 http://www.linuxprobe.com/chapter-00.html
望採納
⑷ 請簡述嵌入式linux內核的編譯過程
編譯及安裝簡要步驟:
編輯Makefile版本信息
定義內核特性,生成配置文件.config,用於編譯:make xconfig
編譯內核:make
安裝內核:make install
安裝模塊:make moles_install
具體步驟如下:
內核配置
先定義內核需要什麼特性,並進行配置。內核構建系統(The kernel build system)遠不是簡單用來構建整個內核和模塊,想了解更多的高級內核構建選項,你可以查看 Documentation/kbuild 目錄內的內核文檔。
可用的配置命令和方式:
make menuconfig
命令:make menuconfig
編譯內核
編譯和安裝內核
編譯步驟:
$ cd /usr/src/linux2.6
$ make
安裝步驟 (logged as
$ make install
$ make moles_install
提升編譯速度
多花一些時間在內核配置上,並且只編譯那些你硬體需要的模塊。這樣可以把編譯時間縮短為原來的1/30,並且節省數百MB的空間。另外,你還可以並行編譯多個文件:
$ make -j <number>
make 可以並行執行多個目標(target)(KEMIN:前提是目標規則間沒有交叉依賴項,這個怎麼做到的?)
$ make -j 4
即便是在單處理器的工作站上也會很快,讀寫文件的時間被節省下來了。多線程讓CPU保持忙碌。
number大於4不見得有效了,因為上下文切換過多反而降低的工作的速度。
make -j <4*number_of_processors>
內核編譯tips
查看完整的 (gcc, ld)命令行: $ make V=1
清理所有的生成文件 (to create patches...): $ make mrproper
部分編譯:$ make M=drivers/usb/serial
單獨模塊編譯:$ make drivers/usb/serial/visor.ko
最終生成的文件
vmlinux 原始內核鏡像,非壓縮的
arch/<arch>/boot/zImage zlib壓縮的內核鏡像(Default image on arm)
arch/<arch>/boot/bzImage bzip2壓縮的內核鏡像。通常很小,足夠放入一張軟盤(Default image on i386)
⑸ 如何寫配置文件
配置文件可以是任何形式,可以是xml或者txt都行,比如資料庫的連接配置
比如:
<?xml version="1.0" standalone="yes"?>//這句一定要有,下面的你隨意寫
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
</startup>
<connectionStrings>
<add name="DBConnectionString" connectionString="Data Source=192.168.118.21;Initial Catalog=PreMix;User Id =sa;Password =sa" providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>
這就是個配置文件,在winform裡面直接用DataSet的ReadXml()方法就能讀取到裡面的值
⑹ 如何讓VS根據編譯環境選擇相應的配置文件
首先新建一個WinForm項目,在項目中添加兩個配置文件app.Debug.config和app.Release.config(如果有自帶的App.config,可將其刪除),並在兩個配置文件中添加測試數據
然後打開項目所在文件夾,用文本編輯器打開項目文件,在這里我推薦Notepad++,當然你可以根據個人習慣選擇自己喜歡的編輯器。
注意:千萬不要用寫字板打開,因為寫字板會改變文件的換行符,使程序不能正確載入配置文件
⑺ Linux內核源碼如何編譯
首先uname -r看一下你當前的linux內核版本
1、linux的源碼是在/usr/src這個目錄下,此目錄有你電腦上各個版本的linux內核源代碼,用uname -r命令可以查看你當前使用的是哪套內核,你把你下載的內核源碼也保存到這個目錄之下。
2、配置內核 make menuconfig,根據你的需要來進行選擇,設置完保存之後會在當前目錄下生成.config配置文件,以後的編譯會根據這個來有選擇的編譯。
3、編譯,依次執行make、make bzImage、make moles、make moles
4、安裝,make install
5、.創建系統啟動映像,到 /boot 目錄下,執行 mkinitramfs -o initrd.img-2.6.36 2.6.36
6、修改啟動項,因為你在啟動的時候會出現多個內核供你選擇,此事要選擇你剛編譯的那個版本,如果你的電腦沒有等待時間,就會進入默認的,默認的那個取決於 /boot/grub/grub.cfg 文件的設置,找到if [ "${linux_gfx_mode}" != "text" ]這行,他的第一個就是你默認啟動的那個內核,如果你剛編譯的內核是在下面,就把代表這個內核的幾行代碼移到第一位如:
menuentry 'Ubuntu, with Linux 3.2.0-35-generic' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
gfxmode $linux_gfx_mode
insmod gzio
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set=root 9961c170-2566-41ac-8155-18f231c1bea5
linux/boot/vmlinuz-3.2.0-35-generic root=UUID=9961c170-2566-41ac-8155-18f231c1bea5 ro quiet splash $vt_handoff
initrd/boot/initrd.img-3.2.0-35-generic
}
當然你也可以修改 set default="0"來決定用哪個,看看你的內核在第幾位,default就填幾,不過我用過這種方法,貌似不好用。
重啟過後你編譯的內核源碼就成功地運行了,如果出現問題,比如滑鼠不能用,usb不識別等問題就好好查查你的make menuconfig這一步,改好後就萬事ok了。
最後再用uname -r看看你的linux內核版本。是不是你剛下的那個呢!有沒有成就感?
打字不易,如滿意,望採納。