怎样写编译配置文件
⑴ 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内核版本。是不是你刚下的那个呢!有没有成就感?
打字不易,如满意,望采纳。