首页 > 其他分享 >自动生成Makefile

自动生成Makefile

时间:2024-04-10 20:32:07浏览次数:26  
标签:rw 16 -- Makefile 生成 Apr 自动 str root

提示:文章

文章目录

前言

前期疑问:
本文目标:


一、背景

最近

二、使用autotool生成makefile

4.0 程序文件

建立目录:mkdir include src

编写程序:include/str.h

#include <stdio.h>  
int str(char *string);

编写程序:src/str.c

#src/str.c
#include "str.h"  
//print string  
int str(char *string){  
        printf("\n----PRINT STRING----\n\"%s\"\n",string);  
        return 0;  
}  
  
//interface of this program  
int main(int argc , char **argv){  
        char str_read[1024];  
        printf("Please INPUT something end by [ENTER]\n");  
        scanf("%s",str_read);  
        return str(str_read );  
}     

4.1执行autoscan

[root@localhost str]# ls  
include  src  
[root@localhost str]# autoscan

静默执行

4.1.1报错

root@0002:~/gdal_0407/MakefileTest# autoscan
Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/${ <-- HERE [^}]*}/ at /usr/bin/autoscan line 361.

解决办法:

参考文档

执行autoscan后生成文档

-rw-r--r-- 1 root root     0 Apr  8 15:11 autoscan.log
-rw-r--r-- 1 root root   469 Apr  8 15:11 configure.scan
drwxr-xr-x 2 root root  4096 Apr  8 15:00 include/
drwxr-xr-x 2 root root  4096 Apr  8 15:01 src/

4.2修改 configure.ac

4.3执行aclocal

静默执行

生成文档

drwxr-xr-x 5 root root  4096 Apr  8 15:16 ./
drwxr-xr-x 6 root root  4096 Apr  8 14:58 ../
-rw-r--r-- 1 root root 42141 Apr  8 15:16 aclocal.m4
drwxr-xr-x 2 root root  4096 Apr  8 15:16 autom4te.cache/
-rw-r--r-- 1 root root     0 Apr  8 15:11 autoscan.log
-rw-r--r-- 1 root root   486 Apr  8 15:16 configure.ac
-rw-r--r-- 1 root root   469 Apr  8 15:11 configure.scan
drwxr-xr-x 2 root root  4096 Apr  8 15:00 include/
drwxr-xr-x 2 root root  4096 Apr  8 15:01 src/

4.4 vi Makefile.am

4.5 autoheader

静默执行

4.6 touch NEWS README AUTHORS ChangeLog

静默执行

4.7automake -a

root@0002:~/gdal_0407/MakefileTest# automake -a
configure.ac:11: installing './compile'
configure.ac:6: installing './install-sh'
configure.ac:6: installing './missing'
Makefile.am: installing './INSTALL'
Makefile.am: installing './COPYING' using GNU General Public License v3 file
Makefile.am:     Consider adding the COPYING file to the version control system
Makefile.am:     for your code, to avoid questions about which license your project uses
Makefile.am:3: warning: source file 'src/str.c' is in a subdirectory,
Makefile.am:3: but option 'subdir-objects' is disabled
automake: warning: possible forward-incompatibility.
automake: At least a source file is in a subdirectory, but the 'subdir-objects'
automake: automake option hasn't been enabled.  For now, the corresponding output
automake: object file(s) will be placed in the top-level directory.  However,
automake: this behaviour will change in future Automake versions: they will
automake: unconditionally cause object files to be placed in the same subdirectory
automake: of the corresponding sources.
automake: You are advised to start using 'subdir-objects' option throughout your
automake: project, to avoid future incompatibilities.
Makefile.am: installing './depcomp'

4.8 autoconf

静默执行

执行测试:

4.9 执行./configure

4.11执行make

生成了str可执行文件

可以使用./str执行文件

4.12中make install安装

将str安装到系统里面,这样只要在终端输入str就可以运行程序了。

make[1]: Entering directory '/root/gdal_0407/MakefileTest'
 /bin/mkdir -p '/u/bin'
  /usr/bin/install -c str '/u/bin'
make[1]: Nothing to be done for 'install-data-am'.
make[1]: Leaving directory '/root/gdal_0407/MakefileTest'

安装路径是根目录/u/bin/

文章中说的是可以在终端输入str执行,但是试了好像不行,需要进入安装路径中才行

4.13 执行make clean

可以清除.o文件

三、使用cmake生成makefile

3.1

简单样例

root@0002:~/gdal_0407/cmakeTest# cmake -version
cmake version 3.9.2

CMake suite maintained and supported by Kitware (kitware.com/cmake).
root@0002:~/gdal_0407/cmakeTest# ll
total 16
drwxr-xr-x 2 root root 4096 Apr  8 16:27 ./
drwxr-xr-x 7 root root 4096 Apr  8 16:24 ../
-rw-r--r-- 1 root root   80 Apr  8 16:27 CMakeLists.txt
-rw-r--r-- 1 root root   76 Apr  8 16:25 main.c
root@0002:~/gdal_0407/cmakeTest# cmake .
-- The C compiler identification is GNU 10.3.0
-- The CXX compiler identification is GNU 10.3.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: /root/gdal_0407/cmakeTest
root@0002:~/gdal_0407/cmakeTest# ll
total 48
drwxr-xr-x 3 root root  4096 Apr  8 16:28 ./
drwxr-xr-x 7 root root  4096 Apr  8 16:24 ../
-rw-r--r-- 1 root root 12578 Apr  8 16:28 CMakeCache.txt
drwxr-xr-x 5 root root  4096 Apr  8 16:28 CMakeFiles/
-rw-r--r-- 1 root root  1361 Apr  8 16:28 cmake_install.cmake
-rw-r--r-- 1 root root    80 Apr  8 16:27 CMakeLists.txt
-rw-r--r-- 1 root root    76 Apr  8 16:25 main.c
-rw-r--r-- 1 root root  4682 Apr  8 16:28 Makefile
root@0002:~/gdal_0407/cmakeTest# vi Makefile
root@0002:~/gdal_0407/cmakeTest# make
Scanning dependencies of target main
[ 50%] Building C object CMakeFiles/main.dir/main.c.o
[100%] Linking C executable main
[100%] Built target main
root@0002:~/gdal_0407/cmakeTest# ll
total 68
drwxr-xr-x 3 root root  4096 Apr  8 16:28 ./
drwxr-xr-x 7 root root  4096 Apr  8 16:24 ../
-rw-r--r-- 1 root root 12578 Apr  8 16:28 CMakeCache.txt
drwxr-xr-x 5 root root  4096 Apr  8 16:28 CMakeFiles/
-rw-r--r-- 1 root root  1361 Apr  8 16:28 cmake_install.cmake
-rw-r--r-- 1 root root    80 Apr  8 16:27 CMakeLists.txt
-rwxr-xr-x 1 root root 16432 Apr  8 16:28 main*
-rw-r--r-- 1 root root    76 Apr  8 16:25 main.c
-rw-r--r-- 1 root root  4682 Apr  8 16:28 Makefile
root@0002:~/gdal_0407/cmakeTest# ./main
Hello World

参考
使用cmake生成makefile


总结

未完待续

标签:rw,16,--,Makefile,生成,Apr,自动,str,root
From: https://blog.csdn.net/2301_77560238/article/details/137512305

相关文章

  • .NET MAUI设置windows下自动全屏显示
    来源:https://www.saoniuhuo.com/question/detail-2593977.html方式1MainPage.xaml对应的cs文件中namespaceXCGMauiApp{publicpartialclassMainPage:ContentPage{publicMainPage(){InitializeComponent();}......
  • 漫画脸生成器的漫画效果多吗?对比不同软件的输出质量
    虽然清明假期刚过,但是不少人已经开始计划着五一去哪玩了。可不要觉得离谱,都有不少人开始计划年假去不去哈尔滨看冰雕的。当然了,旅行的意义不仅仅在于目的地的到达,更在于过程和记录,拍照肯定是少不了的。如果觉得旅游中拍的照片缺少了一些生动和趣味时,可以通过照片变漫画效果功......
  • WDS+MDT网络启动自动部署windows(三)UEFI & BIOS 双PXE引导
    简介:我们可以通过调整启动文件来兼容不同的硬件(UEFI&BIOS),能否不手动调整呢?自动调整也是可以的。本来是是想将DHCP放在H3C5500上的,但是咨询过H3C的售前顾问后,没有任何一个型号支持这个功能,前面已经折腾过自动识别客户端类型,发送不同的启动文件了。为了更好的完成这个系列文章......
  • 批处理文件是一个包含一系列命令的文本文件,这些命令按顺序执行,以完成特定的任务或自动
    批处理是一种在计算机系统中执行一系列命令的技术和方法。通常,批处理文件是一个包含一系列命令的文本文件,这些命令按顺序执行,以完成特定的任务或自动化操作。批处理文件通常使用扩展名为.bat(在Windows系统中)或.sh(在类Unix系统中,如Linux和macOS)。批处理文件中的命令可以......
  • AnimateDiff 目前生成视频最流畅的SD插件
    前言测试了下最近比较火的AnimateDiff,感觉确实蛮棒的,画面流畅没有闪帧的问题,真的感觉视频生成又近了一步,下面小刚分享下基本的使用方法。效果预览(电脑配置不行仅作参考):一、安装插件(以秋叶大佬的整合包为例):AnimateDiff项目:https://github.com/guoyww/AnimateDiffWebU......
  • chatgpt扮演AI绘画生成器
    我希望你充当人工智能AI绘画计划的提示生成器。你的工作是提供详细和创造性的描述,这些描述将激发来自人工智能的独特而有趣的图像。请记住,人工智能能够理解广泛的语言,并且可以解释抽象的概念,因此请尽可能富有想象力和描述性。例如,您可以描述未来派城市的场景,或者充满奇怪生物的超......
  • MXnet安装 与入门 符号式运算 Symbol 数据同步 KVStore 自动并行计算 数据的导出与载
    MXnet参考通过MXNet/Gluon来动手学习深度学习在线githubpdf代码深度学习库MXNet由dmlc/cxxnet,dmlc/minerva和Purine2的作者发起,融合了Minerva的动态执行,cxxnet的静态优化和Purine2的符号计算等思想,直接支持基于Python的parameterserver接口,使......
  • 又一款低代码生成器
    大家好,我是Java陈序员。最近在浏览Github的时候,发现了一款简单好用的低代码生成器maku-generator。无论是工作,还是接私活,这款低代码都能快速迭代出一个项目!今天,分享给大家,强烈建议私有化部署!关注微信公众号:【Java陈序员】,获取开源项目分享、AI副业分享、超200本经典计算......
  • 使用Python+selenium+pytest+allure 编写ui自动化
    一、1.1背景:每次新发布功能后都需要手动跑冒烟用例,重复点击太多,消耗人力资源1.2测试项目:飞书第三方isv应用1.3技术栈:Python+Selenium+Pytest+Allure1.4框架设计:使用PageObject设计模式,将页面的元素和元素之间的操作方法进行分离。它有三层架构,分别为:基础封装层BasePage,PO页面......
  • Python生成excel文件的三种方式
    在我们做平常工作中都会遇到操作excel,那么今天写一篇,如何通过python操作excel。当然python操作excel的库有很多,比如pandas,xlwt/xlrd,openpyxl等,每个库都有不同的区别,具体的区别,大家一起来看看吧~xlwt/xlrdxlrd是对于Excel进行读取,xlrd操作的是xls/xlxs格式的excelxlwt......