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

编译静态类,使用时出现问题

    来源: 互联网  发布时间:2015-10-26

    本文导语:  我是这样的:    g++ -Wall -c add.c    ar -crv libadd.a add.o 请注意:add.c 文件里包含着类class Adding , 编译通过,但是在使用时、连接libadd.a时出现了 class Adding 没定义的错误,请问怎回事呢? 应该如何改进,请帮...

我是这样的:
   g++ -Wall -c add.c
   ar -crv libadd.a add.o

请注意:add.c 文件里包含着类class Adding ,
编译通过,但是在使用时、连接libadd.a时出现了
class Adding 没定义的错误,请问怎回事呢?

应该如何改进,请帮忙,谢谢!!!!!!!!

在使用连接libadd.a时,头文件是有包含的,就是
g++ -c a.cpp 能编译通过,但是连接时
g++ a.cpp -ladd 连接libadd.a时就出现了class Adding
没定义,请问怎么呢?谢谢!!!!!!!

|
试过ranlib没有?
没有用ranlib整理一下符号表是不行的

|
*.a实际上可以看作是一系列*.o文件的集合,使用起来和*.o文件一样。用-l引入是8对的。

|
偶不知道这么多
只知道
gcc -o target -lsomelib my.o others.a
这样可以使用。
从来没有见过g++ a.cpp -ladd这样的写法,偶狂汗,知识太有限,解决不了,走了。

|
研究研究

|
.a可以用-l引入,在不同系统中的引入方式不同。在Linux下一般是先查找-l后的.so,如果找不到就会去找.a。如果要强制不去找.so,可以在-l前面加入-static参数。

|
所以现在的问题首先需要看连接的到底是.so还是这个.a。

|
是g++ a.cpp -ladd 这种写法有问题吧?
我觉得应该是g++ a a.cpp -ladd

|
1. g++ a.cpp libadd.a
2. g++ a.cpp -L./ -ladd(-L后应该是你的libadd.a所在的路径)
这两种情况都假设a.cpp和libadd.a在同一个目录下

|
ar完还要ranlib一下, 具体 man 一下!

|
应该是你的静态库的问题,你仔细查查静态库的源码

    
 
 

您可能感兴趣的文章:

  • 用Jdk编译时出现提示要加 -deprecation 再编译,请教??
  • 编译内核时出现同名文件该怎么解决
  • 编译时出现的问题
  • 编译EJB时出现的问题
  • 编译内核时出现的一个问题,求助!
  • 编译openwrt时出现的问题,请指点,谢谢!
  • 用javac编译时出现不支持Enumeration类的错误.谁能帮帮我!
  • xlc编译最后链接时出现未定义的问题
  • Gcc编译时出现的问题,很急!!!
  • Redhat9下Kylix3_bcb编译时出现Linker Error?
  • XOpenDisplay为什么编译时出现:”undefined reference to XOpenDisplay"?
  • 有关netfilter编译时出现的一些小错误
  • 编译时出现的warning,要怎么才能去掉?
  • 在solaris 10上进行socket编程 编译没有问题 连接时出了错
  • 弱弱的问:编译一小程序时加载arch时出现的一个小问题
  • 编译模块时出的问题 storage size of 'wait' isn`t know
  • linux 安装交叉编译器时出现错误
  • 有关编译线程代码时出现的一些错误提示。。
  • 编译输入法时出现的问题
  • 用Makefile编译程序时出现的问题?
  • 动态编译与静态编译驱动程式疑问?
  • gcc的静态库.lib怎末在编译的时候连接。对了静态库是自己的???
  • Linux下gcc编译时,如何以静态链接的形式编译?
  • 急求静态库引用静态库,该如何编译链接!!!
  • 请教一个gcc静态编译的问题。
  • 关于静态编译
  • 静态库编译问题
  • LINUX下的静态库编译链接问题
  • 编译静态链接库,其中使用了其它链接库,该如何写makefile
  • 如何编译一个静态的so
  • solaris9 静态库编译出错
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 我使用.net编译通过,但是使用g++编译不能通过。总是提示我undefined reference to ~myclass()
  • ubuntu 10.10出现极其诡异的情况,使用gcc编译没任何反应,可以继续输入,但是不提示任何错误;使用make编译效果一样;
  • PROC开发时 //注释编译不通过 如何设置使用cpp编译。
  • 谁知道如何在i386平台使用交叉编译工具为mips平台编译libtiff啊?
  • LINUX下使用Eclipse,如何使用交叉编译器?
  • 如何使用arm-uclibc-gcc将.c文件编译生成.a,将.c文件编译生成.cgi?
  • 关于大于2G内存的使用.....按32位编译的进程怎么使用大于2G的内存?
  • 使用gcc编译器进行代码编译出来的程序是否遵循gpl协议
  • 在Linux下使用GCC如何编译生成Windows下使用的DLL?
  • 在redhat9.0下,怎样使用自带的gcc编译器的? 是在终端使用吗? 有这方面的资料么?
  • 菜鸟问题,小弟刚刚使用LINUX不久,不知道如何使用编程工具进行编译和运行!
  • 别人编译好的交叉编译的工具链,我在自己系统中怎么使用 急
  • 编译内核的后,我的一个类似USB键盘的HID类设备使用不了了,怎么办?
  • 急求,用户程序使用atomic的编译问题!!
  • linux下的C++编译器怎样使用?
  • Linux下使用openssl api编程socket编程,为什么要编译啊?
  • 请问什么是预编译,有什么作用。怎么使用?
  • 条件编译可以使用全局变量吗?
  • putty下如何使用gcc编译c或c++程序的资料
  • 各位在Unix下开发,使用哪种c++编译器?
  • linux/centos源码安装nginx编译配置选项参数介绍
  • 请教:JSP编译器编译成字节码,跟别的编译器编译出来的有什么不同呢?
  • CentOS 6内核升级:下载编译启用新内核版本详细过程
  • 编译GCC时能不能只编译C/C++的编译器?
  • 高速的网络抓包库PF_ring介绍及编译安装
  • 关于arm交叉编译器4.3.3编译程序报错,但是3.4.5却能编译通过的问题
  • JB下,我的程序编译得好慢!请问用什么方法编译才可以快一点?或编译顺序改变一下?
  • 请问gdb是不是只能调试gcc编译的程序,在unix下用其它编译器编译的程序是不是不一定能用gdb调试的?
  • 用JCreator写了一个小程序,有十几个class,当修改某个文件重新编译,javac并没有编译修改的文件,请问要如何做javac才会重新编译所有的
  • 问:关于gcc编译器和g++编译器
  • 嵌入式linux开发:一段代码在windows平台用VC编译运行正常,在linux平台用gcc编译运行正常,但是用arm-linux-gcc编译在嵌入式板子上运行就不正常.


  • 站内导航:


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

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

    浙ICP备11055608号-3