linux编译c++

linux编译c++

创建一个简单的.cpp文件,编译成为可执行文件

1.main.cpp

1
2
3
4
5
6
7
8
9
10
11
12
// main.cpp

#include <cstdio>

int main()
{
printf("%s 向你问好1!\n", "ConsoleApplication1");


return 0;
}

2.创建 main.cpp 并生成 main.o:

1
g++ -c main.cpp -o main.o

3.o文件编译成可执行文件 test

1
g++ main.o -o test

创建一个关联的libmainlibrary.a,和其他main.o文件编译成为可执行文件

1.创建main.cpp,【 main_function声明在main_program.cpp】

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// main.cpp

#include <cstdio>

// 声明 main_function
extern void main_function();

int main()
{
printf("%s 向你问好1!\n", "ConsoleApplication1");

// 调用 main_function
main_function();

return 0;
}

2.创建main_program.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// main_program.cpp

#include <cstdio>

// 实际定义 main_function
void main_function()
{
printf("Hello from main_function!\n");
}

int main()
{
printf("Calling function from libmainlibrary.a:\n");
main_function();

return 0;
}

执行编译命令

  1. 创建 main.cpp 并生成 main.o

    1
    2
    bashCopy code
    g++ -c main.cpp -o main.o
  2. 创建静态库 libmainlibrary.a 并添加 main.o

    1
    2
    bashCopy code
    ar rcs libmainlibrary.a main.o
  3. 创建 main_program.cpp 并生成 main_program.o

    1
    2
    bashCopy code
    g++ -c main_program.cpp -o main_program.o
  4. 链接 main_program.olibmainlibrary.a

    1
    2
    bashCopy code
    g++ main_program.o -L. -lmainlibrary -o my_program_using_library

在我们的示例中,使用了 -L. 来指定当前目录。你也可以使用绝对路径或相对路径来指定库的位置。

main.cpp生成.os文件

1
g++ -c -fPIC main.cpp -o main.os