tag 标签: A40i-H

相关博文
  • 热度 3
    2023-12-12 15:21
    375 次阅读|
    0 个评论
    移植ncurses库 本文使用的ncurses版本为ncurses-5.9.tar.gz 下载地址:https://ftp.gnu.org/gnu/ncurses/ncurses-5.9.tar.gz 1. 将ncurses压缩包拷贝至Linux主机或使用wget命令下载并解压 tar-zxvfncurses-5.9.tar.gz 2. 解压后进入到ncurses-5.9目录下 cdncurses-5.9 3. 在ncurses-5.9目录下创建编译完成后生成文件位置 mkdiroutput cdoutput mkdirarm-linux 4. 生成Makefile文件 ./configure--target=arm-none-linux-gnueabi--prefix=$PWD/output/arm-linux--enable-termcap--with-shared--without-ada l --target表示编译器的前缀,需要根据编译的不同需求进行修改 l --prefix表示编译完成后生成文件的位置 l --nable-termcap表示关键代码使用termcap(terminalcapabilities)数据库 l --with-shared表示动态编译 5. 编译 make 当遇到如下报错时 Makefile:794:recipefortarget'../obj_s/lib_gen.o'failed make :*** Error1 make :Leavingdirectory'.../ncurses-5.9/ncurses' Makefile:109:recipefortarget'all'failed make:*** Error2 需要进入ncurses-5.9/include文件夹,修改curses.tail文件下的如下内容,将注释/*generated*/去掉 externNCURSES_EXPORT(bool)mouse_trafo(int*,int*,bool);/*generated*/ 6. 安装 Makeinstall 7. 安装完成后会在/output/arm-linux目录下生成库文件,我们只需将lib目录下的libncurses.so.5库拷贝至开发板 移植gdb 本文使用的gdb版本为gdb-7.12.tar.gz 下载地址:https://ftp.gnu.org/gnu/gdb/gdb-7.12.tar.gz 1. 将gdb压缩包拷贝至Linux主机或使用wget命令下载并解压 tar-zxvfgdb-7.12.tar.gz 2. 解压后进入到ncurses-5.9目录下 cdgdb-7.12 3. 生成Makefile文件 ./configure-host=arm-none-linux-gnueabiCC=/home/vanxoak/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-gcc--enable-shared--prefix=$PWD/output/arm-linux--disable-werror--without-x--disable-gdbtk--disable-tui--without-included-regex--without-included-gettextLDFLAGS="-L$PWD/../output/arm-linux/lib"CPPFLASS="-I$PWD/../output/arm-linux/include" l --host=arm-none-linux-gnueabi用arm-none-linux-gnueabi编译 l CC为交叉编译器绝对路径 l --enable-shared动态编译 l prefix=“$PWD/output/arm-linux”安装目录 l --disable-werror屏蔽werror报警 l --without-x取消xwindows支持 l --disable-gdbtk取消gdbtk l --disable-tui取消tui界面 l --without-included-gettext去掉用于多语言处理的gettext库 l "LDFLAGS=XXX"指交叉编译完成的ncurse的lib目录路径 l "CPPFLAGS=XXX"指是交叉编译完成的ncurse的include目录路径 4. 编译 make 5. 安装 makeinstall 安装完成后会在.../gdb-7.12/output/arm-linux/bin/目录下生成gdb可执行程序。 移植至HDT3-EVM开发板 1. 将libncurses.so.5库文件拷贝至/usr/lib目录下,若/usr目录下无lib目录可手动创建mkdirlib 2. 将gdb程序拷贝至/bin目录下 ​ 测试调试 1. 编写可执行测试程序,示例hello.c代码如下,该代码执行后会打印HelloWorld 。 #include intmain(intargc,char*argv 如上述代码显示"HelloWorld"即表示hello程序执行完成 (gdb)help Listofclassesofcommands: aliases--Aliasesofothercommands breakpoints--Makingprogramstopatcertainpoints data--Examiningdata files--Specifyingandexaminingfiles internals--Maintenancecommands obscure--Obscurefeatures running--Runningtheprogram stack--Examiningthestack status--Statusinquiries support--Supportfacilities tracepoints--Tracingofprogramexecutionwithoutstoppingtheprogram user-defined--User-definedcommands Type"help"followedbyaclassnameforalistofcommandsinthatclass. Type"helpall"forthelistofallcommands. Type"help"followedbycommandnameforfulldocumentation. Type"aproposword"tosearchforcommandsrelatedto"word". Commandnameabbreviationsareallowedifunambiguous.