#如果没有的话,就是创建下面文件。如果没有的话,会出错。
touch NEWS
touch README
touch AUTHORS
touch ChangeLog
#步骤2 autoscan
autoscan
#生成configure.scan,把configure.scan改成configure.ac,删除中括号。
#然后再添加下面的:
#AC_CANONICAL_SYSTEM
#AM_INIT_AUTOMAKE()
#AC_PROG_RANLIB
#步骤3 aclocal
aclocal
ls
#步骤4 autoconf
autoconf
ls
#步骤5 autoheader
autoheader
ls
#步骤6 创建Makefile.am文件
#上面完成了
#步骤7 automake
automake --add-missing
#步骤8 ./configure
./configure --prefix=${install_path} \
CFLAGS=" -g -O2 " \
#调试时 -O0 不优化,正常来说就不要啦!
#原来是a.cpp,a.hh文件。执行上面的命令,生成Makefile。执行configure时,自动使用g++,编译没问题。
#我把a.cpp改成a.c,a.hh改成a.h,然后把里面的代码改成c语言代码。执行configure时,自动使用gcc。但是编译的时候,总是提示下面的错误:
# make[3]: *** No rule to make target 'a.cpp', needed by 'a.o'. Stop.
#后面把a的名字改成b,重新生成Makefile,然后就好了。怎么理解?这也是我突然来灵感想出来的方法!
这篇博客详细记录了一次在自动化构建过程中遇到的编译问题。作者首先通过`touch`命令创建了一系列必要的文件,然后依次执行了`autoscan`、`aclocal`、`autoconf`、`autoheader`和`automake`等步骤来生成配置文件。在执行`configure`时,由于源文件从C++改为了C语言,导致原有的Makefile不再适用,出现了找不到目标文件'a.cpp'的错误。作者通过更改文件名并重新生成Makefile解决了这个问题。博客重点讨论了解决自动化构建中编译错误的思路和方法。
712

被折叠的 条评论
为什么被折叠?



