首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

linux下静态链接库的有关问题

2012-03-18 
linux下静态链接库的问题请问,静态链接库可以包含静态链接库么?有人说静态库不可以包含,有人说可以包含。到

linux下静态链接库的问题
请问,静态链接库可以包含静态链接库么?
有人说静态库不可以包含,有人说可以包含。到底能不能阿?
windows下我用过,是可以的。linux下就做不了了? 有没有高人指点一下?
谢谢


举例如下:

建立一个源文件,并把这个原文件生成静态链接库。
xxx.c 中
#include <math.h>
float mysin(float angle)
{
  return sin(angle);
}

然后把这他编译成静态链接库。
gcc -c xxx.c -o xxx.o
ar rcs libxxx.a xxx.o

在其他程序使用这个库的时候,例如: gmain.c

gcc gmain.c -lxxx -o gmain

会报错误。 因为sin()函数需要使用 libm.a库。
必须使用 gcc gmain.c -lxxx -lm -o gmain 才会可以。

有没有办法把这个libm.a包含在libxxx.a中?那么编译gmain.c时, 就不需要家-lm的选项了?就是把libm.a包含再libxxx.a中。 有没有办法阿?谢谢。

[解决办法]

C/C++ code
[@test]$ cat m.cpp #include <cmath>float mysin(float angle){          return sin(angle);}[@test]$ g++ -c m.cpp -o m.o ; ar -rcs libmmm.a m.o[@test]$ cat main.cpp #include <iostream>using namespace std;extern float mysin(float);int main(){        cout << mysin(1.0);        return 0;}[@ test]$ g++ main.cpp libmmm.a -o test[@ test]$ ./test 0.841471[@ test]$ 

热点排行