g++ 编译链接C++代码, 生成与使用静态库和动态库
2014-08-20 12:33
316 查看
例如我有A.cpp、A.h、main.cpp 三个文件
编译链接C++代码:
第一步:g++ -c A.cpp main.cpp
这样就可以编译A.cpp和main.cpp的代码生成A.o和main.o文件【因为A.cpp包含了A.h的头文件,所以一般编译时只选择cpp文件即可】。
第二步:g++ -o test A.o main.o
这样就可以把编译好的.o文件链接成可执行文件。-o 后面的参数是编译好的可执行文件的名字。当然,也可以跳过第一步,直接【g++ -o test A.cpp main.cpp】一次过编译并链接生成可执行文件。
第三步:./test
这样就可以运行可执行文件,执行A.cpp和main.cpp 的代码。
生成并使用静态库。
第一步:g++ -c A.cpp
生成.o文件
第二步:ar -cr libA.a A.o
生成静态库文件,跟在-cr后面的参数就是库文件的名字
第三步:g++ -o test main.cpp libA.a
使用main.cpp 和静态库生成可执行文件
第四步:./test
运行可执行文件
生成并使用动态库。
第一步:g++ -c A.cpp
生成.o文件
第二步:g++ -shared -fPIC -o libA.so A.o
生成动态库文件
第三步:g++ -o test main.cpp libA.so
使用main.cpp 和动态库生成可执行文件
第四步:./test
运行可执行文件
也可直接编译库文件,省去中间文件
静态库:ar -cr libA.a A.cpp
动态库:g++
-shared -fPIC -o libA.so A.cpp
编译链接C++代码:
第一步:g++ -c A.cpp main.cpp
这样就可以编译A.cpp和main.cpp的代码生成A.o和main.o文件【因为A.cpp包含了A.h的头文件,所以一般编译时只选择cpp文件即可】。
第二步:g++ -o test A.o main.o
这样就可以把编译好的.o文件链接成可执行文件。-o 后面的参数是编译好的可执行文件的名字。当然,也可以跳过第一步,直接【g++ -o test A.cpp main.cpp】一次过编译并链接生成可执行文件。
第三步:./test
这样就可以运行可执行文件,执行A.cpp和main.cpp 的代码。
生成并使用静态库。
第一步:g++ -c A.cpp
生成.o文件
第二步:ar -cr libA.a A.o
生成静态库文件,跟在-cr后面的参数就是库文件的名字
第三步:g++ -o test main.cpp libA.a
使用main.cpp 和静态库生成可执行文件
第四步:./test
运行可执行文件
生成并使用动态库。
第一步:g++ -c A.cpp
生成.o文件
第二步:g++ -shared -fPIC -o libA.so A.o
生成动态库文件
第三步:g++ -o test main.cpp libA.so
使用main.cpp 和动态库生成可执行文件
第四步:./test
运行可执行文件
也可直接编译库文件,省去中间文件
静态库:ar -cr libA.a A.cpp
动态库:g++
-shared -fPIC -o libA.so A.cpp
相关文章推荐
- g++ 编译链接C++代码, 生成与使用静态库和动态库
- g++编译运行c++代码流程以及动态库静态库的创建与使用
- 简谈用g++编译运行c++代码流程,以及动态库静态库的创建与使用
- gcc链接g++编译生成的静态库和动态库的makefile示例
- gcc链接g++编译生成的静态库和动态库的makefile示例
- 在Linux下如何使用GCC编译程序、简单生成静态库及动态库
- Linux下g++编译与使用静态库和动态库的方法
- 在Linux下如何使用GCC编译程序、简单生成静态库及动态库
- 在Linux下如何使用GCC编译程序、简单生成静态库及动态库
- gcc 编译链接生成sqlite动态库和静态库
- [转]Linux下g++编译与使用静态库(.a)和动态库(.os) (+修正与解释)
- 在Linux下如何使用GCC编译程序、简单生成静态库及动态库
- 在Linux下如何使用GCC编译程序、简单生成静态库及动态库。
- 生成动态库so的方法|解决NDK r5b引用静态库失效的问题|在NDK的Nactive代码中使用Android Log的方法|生成Native java头文件
- Linux下g++编译与使用静态库和动态库(仅命令)
- 静态库/动态库的 生成与编译链接
- 使用g++编译C/C++程序,链接时出现undefined reference to错误
- Linux下g++编译与使用静态库和动态库
- Linux下g++编译与使用静态库和动态库
- C/C++ 关于生成静态库(lib)/动态库(dll)文件如何使用(基于windows基础篇)