編譯問題集合

2021-07-24 16:06:49 字數 1691 閱讀 5997

(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

C 編譯問題集合(一)

error no match for operator operand types are std basic ostream and 我將自己的 貼上來 std cout the volume of a 0 is 其中volume是我定義的乙個函式 int volume 當時反覆檢查輸出覺得沒有錯...

OGRE 原始碼編譯問題 集合

ogre 原始碼編譯。怕有人找不到 標題中加 choose rendering subsystem 方便 搜尋哈。如果你的ogre 1.7 原始碼不能編譯通過,且你使用的 vs2005 那麼請看下面的 解決步驟 1 檢查是否安裝了所需要的補丁?vs2005 需要安裝 一下兩個補丁。vs80sp1 k...

編譯原理 First集合和Follow集合的求法

first集合的求法 first集合最終是對產生式右部的字串而言的,但其關鍵是求出非終結符的first集合,由於終結符的first集合就是它自己,所以求出非終結符的first集合後,就可很直觀地得到每個字串的first集合。1.直接收取 對形如u a 的產生式 其中a是終結符 把a收入到first ...