Ubuntu下编译程序(动态链接,静态链接,动态加载)
以下为C++程序作为示例:
C o d e . h Code.h Code.h
#ifndef CODE_H
#define CODE_H
int add(int, int);
#endif
C o d e . c p p Code.cpp Code.cpp
#include "Code.h"
int add(int a, int b)
{
return a + b;
}
M a i n . c p p Main.cpp Main.cpp
#include <iostream>
#include "Code.h"
int main(void)
{
std::cout << add(10, 20) << std::endl;
return 0;
}
直接编译:
g++ Main.cpp Code.h Code.cpp
该指令将自动完成 “预处理”、“编译”、“汇编”、“链接” 这四个步骤,将三个文件编译成可执行文件,该可执行文件默认为 a . o u t a.out a.out 。
指定将要生成的可执行文件的名字
g++ Main.cpp Code.h Code.cpp -o [指定的名字]
示例:
g++ Main.cpp Code.h Code.cpp -o Demo
该指令直接将三个文件编译成可执行文件,该可执行文件为 D e m o Demo Demo 。
预处理
g++ -E Code.cpp
上面的命令会使得预处理后的结果显示在计算机屏幕上。
如下指令将编译成预处理文件:
g++ -o Code.i -E Code.cpp
该指令直接将 C