使用静态库时需要注意的事项
来源:互联网 发布:linux crontab java 编辑:程序博客网 时间:2024/06/05 15:21
转载:
在linux下c++开发时, 使用静态库时编译时需要注意如下:
编译时静态库一定要放在最后。
如:(在-o后面)
gcc test.cpp –o test.exe libexample.a
使用静态库时一定要连接所有用到的静态库
如要使用libwinkeemq-cpp.a,由于libwinkeemq-cpp.a用到了libactivemq-cpp.a,
而libactivemq-cpp.a又用到了libpthread.a, libuuid.a等等库,在编译时需要连接所有的库
gcc test.cpp –o test.exe libwinkeemq-cpp.a lib libactivemq-cpp.a libpthrea.a libuuid.a…
静态库动态库相结合使用
上面的编译命令可以精简为
gcc test.cpp –L/usr/local/lib –lactivemq-cpp –o test.exe libwinkeemq-cpp.a
注意多个连接静态库的顺序
规则:越底层的库放在越后面
如:libactivemq-cpp.a比libwinkeemq-cpp.a更底层
gcc test.cpp –o test libwinkeemq-cpp.a libactivemq-cpp.a…
转载:
下面是一个简单的例子,有几个简单的程序文件:bill.c fred.c
//bill.c
#include <stdio.h>
void bill(char *arg)
{
}
//fred.c
#include <stdio.h>
void fred(int arg)
{
}
void bill(char *);
void fred(int);
//program.c
#include "lib.h"
int main()
{
}
$ gcc -c bill.c fred.c
$ ar -crv libfoo. bill.o fred.o
$ gcc -o test program.c libfoo.a
program.c: 在函数‘main’中:
program.c:6: 警告:隐式声明与内建函数‘exit’不兼容
]$ gcc -o test libfoo.a program.c
program.c: 在函数‘main’中:
program.c:6: 警告:隐式声明与内建函数‘exit’不兼容
/tmp/cc88fWhl.o: In function `main':
program.c:(.text+0x19): undefined reference to `bill'
collect2: ld 返回 1
心吧飞梦:
1、用静态库编译程序时,需要连接曾经用到的所有静态库,顺序从新到旧;
2、编译动态库时,不需要指定其他库的库文件路径,只需要指定其他库的头文件路径即可;
3、在生成可执行程序时,需要指定所有动态静态库路径,动态库顺序是从旧到新(越底层越前面),静态库顺序是从新到旧(越底层越后面),总的来说动态库放到静态库前面;
4、生成可执行程序时,直接用到的头文件必须包含,涉及的所有库必须包含。
- 使用静态库时需要注意的事项
- 使用静态库时需要注意的事项
- 使用静态库时需要注意的事项(gcc下…
- 使用UNICODE时需要注意的事项
- bootstrapvalidator使用时需要注意的事项
- 使用WebApi时需要注意的事项:
- 使用静态库时需要注意的事项(gcc下程序调用静态库编译命令:主文件必须在静态库前面!)
- 使用静态库时需要注意的事项(gcc下程序调用静态库编译命令:主文件必须在静态库前面!)
- 使用WTL::CBitmap时需要注意的一个事项
- TortoiseSVN和Eclipse使用时需要注意的事项
- gsoap-2.8使用时需要注意的几个事项
- Linux 和 oracle使用时需要注意的事项
- 使用webpack打包.css文件时需要注意的事项
- 使用auto_ptr需要注意的事项
- 使用auto_ptr需要注意的事项
- 使用auto_ptr需要注意的事项
- 使用auto_ptr需要注意的事项
- 使用spinlock需要注意的事项
- mvc弹出提示窗口的方法
- Android HAL hardware module分析 以GPS module为例
- 基于linux下的dm9000网卡移植全分析
- checkpoint_write_time, checkpoint_sync_time will added in pg_stat_bgwriter
- 总结迁移工作
- 使用静态库时需要注意的事项
- 使用PACKET_MMAP + PF_PACKET实现ZERO COPY抓包和发包
- 子查询
- some kernel network configs needed to be check
- PostgreSQL数据库开源连接池pgbouncer的使用
- recovery 英文介绍
- jquery学习笔记
- js学习笔记
- PB 各种小功能点(一)