首页 > 编程语言 > 详细

C/C++常见编译链接错误解决方法

时间:2015-05-20 02:47:07      阅读:1367      评论:0      收藏:0      [点我收藏+]
有朋友说baidu不到,开个贴记录一下(加粗字体是关键词):

1) 下面是因为没有指定链接参数-lz(/usr/lib/libz.so,/usr/lib/libz.a )
/usr/local/mysql/lib/mysql/libmysqlclient.a(my_compress.c.o): In function `my_uncompress‘:
/home/software/mysql-5.5.24/mysys/my_compress.c:122: undefined reference to `uncompress
/usr/local/mysql/lib/mysql/libmysqlclient.a(my_compress.c.o): In function `my_compress_alloc‘:
/home/software/mysql-5.5.24/mysys/my_compress.c:71: undefined reference to `compress

2) 下面是因为没有指定编译链接参数-pthread(注意不仅仅是-lpthraed)
/usr/local/mysql/lib/mysql/libmysqlclient.a(charset.c.o): In function `get_charset_name‘:
/home/zhangsan/mysql-5.5.24/mysys/charset.c:533: undefined reference to `pthread_once

3) 下面这个是因为没有指定链接参数-lrt
/usr/local/thirdparty/curl/lib/libcurl.a(libcurl_la-timeval.o): In function `curlx_tvnow‘:
timeval.c:(.text+0xe9): undefined reference to `clock_gettime

4) 下面这个是因为没有指定链接参数-ldl
/usr/local/thirdparty/openssl/lib/libcrypto.a(dso_dlfcn.o): In function `dlfcn_globallookup‘:
dso_dlfcn.c:(.text+0x4c): undefined reference to `dlopen
dso_dlfcn.c:(.text+0x62): undefined reference to `dlsym
dso_dlfcn.c:(.text+0x6c): undefined reference to `dlclose

5) 下面这个是因为指定了链接参数-static,它的存在,要求链接的必须是静态库,而不能是共享库
ld: attempted static link of dynamic object
如果是以-L加-l方式指定,则目录下必须有.a文件存在,否则会报-l的库文件找不到:ld: cannot find -lACE

6) GCC编译遇到如下的错误,可能是因为在编译时没有指定-fPIC,记住:-fPIC即是编译参数,也是链接参数
relocation R_x86_64_32S against `vtable for CMyClass` can not be used when making a shared object

7) 下面的错误表示gcc编译时需要定义宏__STDC_FORMAT_MACROS,并且必须包含头文件inttypes.h
test.cpp:35: error: expected `)‘ before ‘PRIu64

8) 下面是因为在x86机器(32位)上编译没有指定编译参数-march=pentium4
../../src/common/libmooon.a(logger.o): In function `atomic_dec_and_test‘:
../../include/mooon/sys/atomic_gcc.h:103: undefined reference to `__sync_sub_and_fetch_4






C/C++常见编译链接错误解决方法

原文:http://blog.chinaunix.net/uid-20682147-id-5037113.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!