传统方法编译与make方法进行编译

以下面的为例子:

main.c

thanks2.c

一。传统的方法

二。使用makefile的方法 

make可以调用 makefile文件来设用源代码,函数库,编译器来编译。在软件包中,makefile可以由configure来自动建立。

注意里面的rm -f main *o为删除之前的目标文件。

makefile

makefile的好处 :

(1)简化编译的执行命令;

(2)若在编译执行完了后,修改了一个源文件,则make只会对修改过的文件 进行再次编译,其它的目标文件 不会更改(相比于shell script);

(3)可以依照相依性来更新执行文件。

三。makefile的语法 

总:

target:   目标文件1 目标文件2

<table> gcc -o  目标文件1 目标文件2

target就是我们要的信息,命令行一定要是以table作为 开头。

如果有两个以上的执行操作时,有下面的例子:

可以分两个任务分别执行

如果想行清除再执行的话,可以使用 make clean main。

在上面例子中,我们发现在makefile里面有很多重复的数据,可以通过shell scripts进行简化。这里暂不记录。

时间: 2024-11-12 10:24:22

传统方法编译与make方法进行编译的相关文章

C编译错误解决方法

1.expected identifier before numeric constant 一般情况下是枚举类型中的某个变量已经被#define定义过一次了,在项目空间中搜索你枚举类型中的所有变量类型,看看是否被#define过,如果被#define过,就把#define的删除或换个名字. C编译错误解决方法,布布扣,bubuko.com

luajit 64位 for cocos2dx 编译ios解决方法

最近luajit发布了64位beta版,由于appstore上线必须是64位的应用,而且我的游戏项目用到lua脚本,所以必须要用到64位的luajit来编译lua脚本. 方法如下: 在luajit官网下载luajit源码: http://luajit.org 解压后,需要通过在luajit的文件夹上层目录,打开终端编译,编译方法如下命令: LUAJIT=./luajit-2.1.0-beta2 DEVDIR=`xcode-select -print-path`/Platforms IOSVER=

使用AndroidStudio编译NDK的方法及错误解决方式

參考资料: [android ndk]macos环境下Android Studio中利用gradle编译jni模块及配置:http://demo.netfoucs.com/ashqal/article/details/21869151 ANDROID STUDIO, GRADLE AND NDK INTEGRATION:http://ph0b.com/android-studio-gradle-and-ndk-integration/ Gradle Plugin User Guide:http:

反编译class文件并重新编译的方法

在没有.java源码的情况下,如果想修改一个.class文件.可以通过以下步骤实现: 修改前的class文件: 一.反编译.class文件成.java文件. 1.可以使用Java Decompiler这个工具,直接打开对应的.class文件.然后点击菜单:File→Save Source,将文件保存成.java文件.如下: PS:Java Decompiler工具还可以用来反编译jar包,有时候需要了解下jar包里的代码实现,如果开发工具里看不到,可以直接用Java Decompiler打开ja

使用AndroidStudio编译NDK的方法及错误解决方案

参考资料: [android ndk]macos环境下Android Studio中利用gradle编译jni模块及配置:http://demo.netfoucs.com/ashqal/article/details/21869151 ANDROID STUDIO, GRADLE AND NDK INTEGRATION:http://ph0b.com/android-studio-gradle-and-ndk-integration/ Gradle Plugin User Guide:http:

简单程序的编译链接三种方法(编译多个源文件,静态链接库、动态链接库)

一个程序简单的程序如下: 1 hello.h #ifndef HELLO_H#define HELLO_H void hello(const char *name); #endif 2 hello.c #include <stdio.h>#include <stdlib.h> void hello(const char *name){ printf("hello %s\n",name);} 3 main.c #include <stdio.h>#in

Eclipse自动编译失效 ---- 解决方法

问题:在开发过程中, 有时候会突然发现修改的代码在启动Web容器后没有生效. 最可能的原因是存在一些校验错误,如下图所示: 解决方法: Window --> Preferences --> 我这里是xml里面有些不识别的标签造成的, 如下图关闭校验即可.(具体问题具体分析) 情况一: 情况二: 可能原先引用的lib包不用了, 删除了, 但是build path里面还是引用了, 会报找不到lib的错误. 确实不用的lib可以如下图一样忽略检查, 如果是需要的lib更换下路径即可. 以上是原先能自

简单的反编译class文件并重新编译的方法

在没有.java源码的情况下,如果想修改一个.class文件.可以通过以下步骤实现: 修改前的class文件: 一.反编译.class文件成.java文件. 1.可以使用Java Decompiler这个工具,直接打开对应的.class文件.然后点击菜单:File→Save Source,将文件保存成.java文件.如下: PS:Java Decompiler工具还可以用来反编译jar包,有时候需要了解下jar包里的代码实现,如果开发工具里看不到,可以直接用Java Decompiler打开ja

codeblocks中cocos2dx项目添加新的.cpp和.h文件后编译运行的方法

新建了cocos2dx项目后(比如我这里建立的项目名为Test01),项目目录下有如下目录和文件: bin CMakeLists.txt MyGame.layout proj.win10 Classes cocos2d proj.android proj.win32 CMakeCache.txt lib proj.android-studio proj.win8.1-universal CMakeFiles Makefile proj.ios_mac Resources cmake_instal