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

makefile编写

    来源: 互联网  发布时间:2016-12-11

    本文导语:  我现在有二个项目A(A.h,A.cpp)/B(B.h,B.cpp),A要编译成一个静态库A.a,B要编译成一个动态库B.so,但A又调用了一个动太库C.so,这个makefile要怎么写呢?我是第一次接触linux,是个菜鸟,求高手帮忙写一个,越详细越好,万分感...

我现在有二个项目A(A.h,A.cpp)/B(B.h,B.cpp),A要编译成一个静态库A.a,B要编译成一个动态库B.so,但A又调用了一个动太库C.so,这个makefile要怎么写呢?我是第一次接触linux,是个菜鸟,求高手帮忙写一个,越详细越好,万分感谢!!!

|
http://hi.baidu.com/36470902/blog/item/4405ff2ab9009925d52af13b.html
假设对于源文件hello.c,欲使其成为静态库,使用如下命令:
$ gcc -c hello.c -o libhello.o     首先编译成目标代码,但是不连接。
$ ar rcs libhello.a libhello.o     其中ar中的rcs的意思是: r表明将模块加入到静态库中,c表示创建静态库,s表示生产索引。

如果在test.c程序中要使用这个库,那么
$ gcc -c test.c -o test.o -I /home/include 

先将test.c编译成目标代码,然后再利用库进行连接 .-I 选项是直源程序头文件的自定义目录

$ gcc test.o -L /home/lib -lhello -o test

其中,-L /home/lib 表示这个库文件的存放位置。 -lhello 表示使用目录下名字为 libhello.o 的库,所以一般库的名称总是以libXXX开头的。    

共享库的创建如下:

$gcc    -fpic/fPIC  -c  source.c -o source.o
$gcc  -shared  -Wl,-soname=your_soname -o library_name file_list library_list
说明: -fpic或者-fPIC表明创建position independent code,这通常是创建共享库必须的。

-Wl 表明给链接器传送参数,所以这里-soname, library_name 为给链接器的参数。
-shared 表明是使用共享库

$gcc -shared -Wl,-soname, libmyab.so.1  -o  libmyab.so.1.0.1  a.o b.o  -lc
表示将a.o b.o创建成名为libmyab.so.1的共享库, -lc 表示 libc

    
 
 

您可能感兴趣的文章:

  • 函数互相调用时Makefile编写
  • 我编写的Makefile文件怎么老是有错误那??
  • 自己编写一个程序编译进内核,要修改makefile文件吗?
  • 请教Makefile文件编写
  • 想学编写内核和编makefile文件要看什么书
  • makefile文件的编写问题
  • 急求关于怎么编写makefile的资料???
  • 关于动态库的Makefile的编写
  • 如何编写Makefile,使得只编译改变的文件
  • cmake怎么编写才使Makefile是高试模式
  • 请教makefile文件编写问题
  • 编写一个makefile
  • 求教solaris下Makefile的编写
  • Makefile编写
  • 在编写MAKEFILE的时候,如何判断一个文件是否存在呢???
  • 求教有关makefile编写的问题 MYSRCS:%c=%o
  • makefile文件的编写
  • makefile编写问题
  • 编写内核模块程序的makefile文件make错误
  • Makefile编写疑问,需要这么麻烦吗?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Makefile.in,Makefile.am,Makefile.bor应该怎么用?
  • makefile.am和makefile.in是什么文件,与makefile有什么联系吗?
  • 最近在学习linux C 看到了makefile部分,觉得makefile的语法很难理解,Makefile 的语法是不是shell语法?
  • 求解makefile问题,makefile.conf的作用?
  • 从网上载了个C++程序的源代码,包含38个.cpp和.h,还有makefile.in和makefile.am两个文件,但无configure和makefile.请问怎么编译?谢谢!
  • 有makefile.am,有 makefine.in 为什么就是没有Makefile?
  • makefile如何调用文件目录下的makefile
  • 请教根据Makefile.am自动生成Makefile的问题
  • 怎麼樣使Makefile.in生成Makefile?
  • 【急!】一个程序里有好多文件夹里都有Makefile,如何找到最管用的makefile
  • 【makefile使用】请问怎样在shell中获取makefile的最终目标?
  • unix下面make makefile文件,提示“makefile is up-to-date",怎么办呀?
  • Makefile使用遇到的问题!"Makefile:3:missing the separator.stop"在线等待.......
  • Makefile是如何输出执行的路径的,表示执行的是那个Makefile
  • 下的tar.gz源码里只有makefile.in和makefile.am
  • 一句 makefile 的解释 -- makefile 与 shel 结合
  • linux makefile error :Makefile:335: *** commands commence before first target。
  • [test@localhost ~]$ cat <makefile >catfile 跟cat > catfile <makefile是一样的吧?
  • 关于makfile,makefile.in, makefile.am. configure之间的关系
  • win32下编译Linux 下的项目(makefile.am和makefile.in)


  • 站内导航:


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

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

    浙ICP备11055608号-3