第 25 章 Build tool

简介:


目录

25.1. make - GNU make utility to maintain groups of programs
25.1.1. autoconf - Generate configuration scripts
25.2. CMake
25.2.1. helloworld
25.2.2. cmake_minimum_required
25.2.3. SET
25.2.4. ADD_SUBDIRECTORY
25.2.5. INCLUDE_DIRECTORIES
25.2.6. 编译文件
25.2.6.1. ADD_EXECUTABLE 编译可执行
25.2.6.2. ADD_LIBRARY 编译库文件
25.2.7. EXECUTABLE_OUTPUT_PATH / LIBRARY_OUTPUT_PATH
25.2.8. TARGET_LINK_LIBRARIES
25.2.9. INSTALL
25.3. scons - a software construction tool
25.4. Phing

25.1. make - GNU make utility to maintain groups of programs

Makefile

$ sudo apt-get install make
		

使用make命令测试

25.1.1. autoconf - Generate configuration scripts

autoconf

$ sudo apt-get install autoconf
			

automake

$ sudo apt-get install automake
			

example

过程 25.1. autoconf and automake step by step

  1. create directory

    % mkdir devel
    % cd devel
    % mkdir hello
    % cd hello
    					

    create a file

    vim hello.c
    
      #include
      int main(int argc, char** argv)
      {
      printf(``Hello, GNU!\n'');
      return 0;
      }
    					
  2. autoscan

    neo@debian:~/workspace/devel/hello$ autoscan
    neo@debian:~/workspace/devel/hello$ ls
    autoscan.log  configure.scan  hello.c
    					
  3. configure.in

    cp configure.scan configure.in
    
    neo@debian:~/workspace/devel/hello$ aclocal
    neo@debian:~/workspace/devel/hello$ autoconf
    neo@debian:~/workspace/devel/hello$ ls
    autom4te.cache  autoscan.log  configure  configure.in  configure.scan  hello.c
    					
  4. Makefile.am

    neo@debian:~/workspace/devel/hello$ vim Makefile.am
    neo@debian:~/workspace/devel/hello$ cat Makefile.am
    AUTOMAKE_OPTIONS= foreign
    bin_PROGRAMS= hello
    hello_SOURCES= hello.c
    neo@debian:~/workspace/devel/hello$
    					

    $ automake --add-missing
    configure.in: no proper invocation of AM_INIT_AUTOMAKE was found.
    configure.in: You should verify that configure.in invokes AM_INIT_AUTOMAKE,
    configure.in: that aclocal.m4 is present in the top-level directory,
    configure.in: and that aclocal.m4 was recently regenerated (using aclocal).
    automake: no `Makefile.am' found for any configure output
    automake: Did you forget AC_CONFIG_FILES([Makefile]) in configure.in?
    				




原文出处:Netkiller 系列 手札
本文作者:陈景峯
转载请与作者联系,同时请务必标明文章原始出处和作者信息及本声明。

目录
相关文章
|
5月前
解决运行qmake:Project ERROR: Cannot run compiler ‘cl‘. Output:
解决运行qmake:Project ERROR: Cannot run compiler ‘cl‘. Output:
134 0
|
Android开发
Migrate Project to Gradle? This project does not use the Gradle build system
Migrate Project to Gradle? This project does not use the Gradle build system
78 0
|
开发工具
Failed to find Build Tools revision 25.0.2
Failed to find Build Tools revision 25.0.2
80 0
|
开发工具 Android开发
eclipse Unable to build: the file dx.jar was not loaded from the SDK folder的解决办法
eclipse Unable to build: the file dx.jar was not loaded from the SDK folder的解决办法
89 0
|
资源调度 JavaScript 前端开发
yarn打包报错:error during build: Error: Assigning to rvalue (Note that you need plugins to import files
yarn打包报错:error during build: Error: Assigning to rvalue (Note that you need plugins to import files
254 7
|
Java API Kotlin
Gradle Writing Build Scripts
The Gradle build language Gradle 构建语言 Gradle 提供了一种领域特定语言(DSL)来描述构建,这种构建语言在 Groovy 和 Kotlin 都可以使用。 Groovy 构建脚本可以包含任何 Groovy 语言元素。 Kotlin 构建脚本可以包含任何 Kotlin 语言元素。 Gradle 假设每个构建脚本都使用 UTF-8进行编码。
106 0
|
开发工具 Android开发
Failed to find Build Tools revision 28.0.3
Failed to find Build Tools revision 28.0.3
231 0
Failed to find Build Tools revision 28.0.3
|
API 开发工具 Android开发
Installed Build Tools revision 31.0.0 is corrupted. Remove and install again using the SDK Manager.
Installed Build Tools revision 31.0.0 is corrupted. Remove and install again using the SDK Manager.
795 0
Installed Build Tools revision 31.0.0 is corrupted. Remove and install again using the SDK Manager.
dpkg-checkbuilddeps: error: Unmet build dependencies: build-essential:native
dpkg-checkbuilddeps: error: Unmet build dependencies: build-essential:native
648 0