当前位置:  技术问答>linux和unix

200分求解:程序中同时用到共享库(.so)、静态库(.a),编译时gcc的参数该如何设置?

    来源: 互联网  发布时间:2015-07-15

    本文导语:  一贴只能给到100分,问题解决马上开贴再补一百分! 我想在一个.so中调用.a,普通程序通过.so实现对.a的调用,下面是过程拷贝 [will@databack atoso]$ more libso.c #include  #include "libso.h" #include "libatest.h" void calla() {   ...

一贴只能给到100分,问题解决马上开贴再补一百分!

我想在一个.so中调用.a,普通程序通过.so实现对.a的调用,下面是过程拷贝


[will@databack atoso]$ more libso.c
#include 
#include "libso.h"
#include "libatest.h"

void calla()
{
    atest(); //call from a static library(libatest.a)
    printf(".a convet to .so is okn");
    return;

}
[will@databack atoso]$ more run.c
#include 
#include "libso.h"
#include "libatest.h"

int main()
{
    calla();
    printf("oh ,3ksn");
    return 0;
}

[will@databack atoso]$ gcc run.c -o run -I. -L. -static -latest -shared -lso

[will@databack atoso]$ ls -lF
总用量 44
-rw-r--r--    1 will     will          950  7月 18 22:24 libatest.a
-rw-r--r--    1 will     will           13  7月 18 22:24 libatest.h
-rw-r--r--    1 will     will          144  7月 18 22:30 libso.c
-rw-r--r--    1 will     will           14  7月 18 22:27 libso.h
-rw-r--r--    1 will     will          900  7月 18 22:31 libso.o
-rw-r--r--    1 will     will         6648  7月 18 22:32 libso.so
-rw-r--r--    1 will     will          116  7月 18 23:15 log.txt
-rwxr--r--    1 will     will         6582  7月 18 23:11 run*
-rw-r--r--    1 will     will          128  7月 18 22:39 run.c
[will@databack atoso]$ ./run
段错误

这样(gcc run.c -o run -I. -L. -static -latest -shared -lso)编译后为什么运行出错呢?


|
这个简单吧,
你先编译那个动态连接库
gcc -shared  -o libso.so libso.c libatest.a
然后再编译可执行程序
gcc -o run run.c  -L. -lso
应该ok
运行run时应该把*.so文件拷贝到/lib目录
或者设置LD_LIBRARY_PATH环境变量

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 求解 求解 求解
  • Linux Shell编程从初学到精通 第四章课后习题2 求解
  • 有限元求解器 GetDP
  • 偏微分方程求解工具箱 DUNE
  • linux命令求解释....
  • 偏微分方程求解框架 Overture
  • 100分求解!!!!!
  • 编译内核时候出现的问题,求解
  • makefile求解
  • 求解ucos ii的一句代码
  • 求助linux下mysql 求解!
  • 求解啊,centos下 shutdown -h now 无效??
  • 求解windows下硬盘安装linux如何用linux引导
  • 关于linux shell的一个不明白的地方。求解
  • solaris安装不上,求解.............
  • [FreeBSD] 大神,求解,control socket : can‘t to any socket
  • ubuntu12.04求解
  • 100分求解如何查看内存最高使用值!!
  • 高分求解---如何在DOS下查杀欢乐时光病毒?用哪种杀毒软件?Windows98没法进入了!
  • 求解struct的大小


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3