编译问题集合


(1)链接提示 "/usr/bin/ld: cannot find -lz"

#yum install zlib-devel

(2)warning: "this decimal constant is unsigned only in ISO C90"

原因是,c语言里面的常量默认是一个32位的有符号整型数。如果整数常量无法用32位的有符号整型数表示,所以会报警告。

解决方法是在整数常量后面加上UL或者L, 比如:600000000UL

(3)version `GLIBCXX_3.4.21' not found

系统原始的c/c++库是老版本的,放置在 /usr/lib/ 下

#strings /usr/lib/libstdc++.so.6  |grep GLIBCXX

GLIBCXX_3.4

GLIBCXX_3.4.1

GLIBCXX_3.4.2

GLIBCXX_3.4.3

GLIBCXX_3.4.4

GLIBCXX_3.4.5

GLIBCXX_3.4.6

GLIBCXX_3.4.7

GLIBCXX_3.4.8

GLIBCXX_3.4.9

GLIBCXX_3.4.10

GLIBCXX_3.4.11

GLIBCXX_3.4.12

GLIBCXX_3.4.13

GLIBCXX_FORCE_NEW

GLIBCXX_DEBUG_MESSAGE_LENGTH

lrwxrwxrwx.  1 root root       19 Nov 30  2013 libstdc++.so.6 -> libstdc++.so.6.0.13

-rwxr-xr-x.  1 root root   942040 Nov 21  2013 libstdc++.so.6.0.13

由于升级了gcc 5.2.0,放置在 /usr/lib/ 下

#strings /usr/local/lib/libstdc++.so.6  |grep GLIBCXX

GLIBCXX_3.4

GLIBCXX_3.4.1

GLIBCXX_3.4.2

GLIBCXX_3.4.3

GLIBCXX_3.4.4

GLIBCXX_3.4.5

GLIBCXX_3.4.6

GLIBCXX_3.4.7

GLIBCXX_3.4.8

GLIBCXX_3.4.9

GLIBCXX_3.4.10

GLIBCXX_3.4.11

GLIBCXX_3.4.12

GLIBCXX_3.4.13

GLIBCXX_3.4.14

GLIBCXX_3.4.15

GLIBCXX_3.4.16

GLIBCXX_3.4.17

GLIBCXX_3.4.18

GLIBCXX_3.4.19

GLIBCXX_3.4.20

GLIBCXX_3.4.21

GLIBCXX_FORCE_NEW

GLIBCXX_DEBUG_MESSAGE_LENGTH

重新软连接一下libstdc++.so

#mv ./libstdc++.so.6 ./libstdc++.so.6.bak

#ln -s /usr/local/lib/libstdc++.so.6.0.21  libstdc++.so.6


你可能感兴趣的:(编译链接)