編譯問題集合


(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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章