注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

多多的爹

 
 
 

日志

 
 

MFC到wxWidgets移植笔记(16)——使用Automake  

2008-05-27 13:58:43|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

所有工作都完成了,只剩下编译。简单的程序,直接写命令行就可以了,复杂点的,就要搞一个Makefile了。写MakeFile不是简单的事情,还好有GNU Autoconf和Automake帮助你做这些事情,他可以根据你给的少量数据,自动生成Makefile文件。生成后,只要会“./configure”,“make”,“make install”就可以把编译并将程序安裝到系统中。
autoconf和automake很好安装:
sudo apt-get install autoconf
sudo apt-get install automake
接下来,就利用Automake为我们的项目做Makefile了。
首先为此项目在/usr/src创建一个目录wallet
cd /usr/src
sudo mkdir wallet
cd wallet
然后将代码从Windows磁盘拷贝过来。主要是代码文件以及程序运行需要的数据库和语言包文件:
sudo cp /media/Data/MyFile/wallet/*.h ./
sudo cp /media/Data/MyFile/wallet/*.c ./
sudo cp /media/Data/MyFile/wallet/*.cpp ./
sudo cp /media/Data/MyFile/wallet/*.db ./
sudo cp /media/Data/MyFile/wallet/*.lng ./
这个步骤不是必须的,但是我已经习惯在这个目录下编译安装了。
通常来说,一个完整的项目,是需要有源代码、文档、数据等目录完备的目录结构的,但这里我仅仅是学习,没有这么完善,所以省略了。
接下来用Automake来生成Makefile:
sudo autoscan
sudo mv configure.scan configure.in
需要修改configure.in:
sudo gedit configure.in
有以下几个地方要修改:
1.
AC_INIT(FULL-PACKAGE-NAME, VERSION, BUG-REPORT-ADDRESS)
改成:
AC_INIT(wallet, 1.0, dryfish118@163.com)
2.
删除
AC_CONFIG_SRCDIR([checkoutdlg.cpp])
AC_CONFIG_HEADER([config.h])
3.
在AC_INIT下面,增加如下行:
AM_INIT_AUTOMAKE(wallet,1.0)
4.
在文档的最后
AC_OUTPUT
改成:
AC_OUTPUT(Makefile)
一般的程序,经过上面几处修改就行了。但因为我们用了wxWidgets库,需要在此include:
m4_include(wxwin.m4)
AM_OPTIONS_WXCONFIG
reqwx=2.8.7
AM_PATH_WXCONFIG($reqwx, wxWin=1)
if test "$wxWin" != 1; then
    AC_MSG_ERROR([
        wxWidgets must be installed on your system.
        Please check that wx-config is in path, the directory
        where wxWidgets libraries are installed (returned by
        'wx-config --libs' or 'wx-config --static --libs' command)
        is in LD_LIBRARY_PATH or equivalent variable and
        wxWidgets version is $reqwx or above.
        ])
fi
CPPFLAGS="$CPPFLAGS $WX_CPPFLAGS"
CXXFLAGS="$CXXFLAGS $WX_CXXFLAGS_ONLY"
CFLAGS="$CFLAGS $WX_CFLAGS_ONLY"
LIBS="$LIBS $WX_LIBS"
比较奇怪的,找不到wxwin.m4文件,要手动拷贝,由于安装wxWidgets的目录也在/usr/src内,所以很方便就能拷过来:
sudo cp ../wxGTK-2.8.7/wxwin.m4 ./
接下来就简单了,运行下面两个命令:
sudo aclocal
sudo autoconf
再然后新建一个Makefile.am:
sudo gedit Makefile.am
在这个文件中,我们需要指定有哪些文件要被编译:
AUTOMAKE_OPTIONS=foreign
bin_PROGRAMS=wallet
wallet_SOURCES=stdafx.h \
stdafx.cpp \
...
在wallet_SOURCES后面,记录所有要编译的文件。如果文件比较多,有一个简单的办法:
sudo ls -1 *.h *.cpp *.c >>fl.txt
打开fl.txt,用全局替换,将所有的"\n"换成" \\\n",然后再把结果拷贝到Makefile.am。
最后,再运行automake,就大功告成了:
sudo automake --add-missing
试试编译和安装:
sudo ./configure
sudo make
sudo make install
最后再运行:
sudo ./wallet

  评论这张
 
阅读(10)| 评论(4)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017