clang++編譯時發生錯誤 - Linux

Tristan Cohan avatar
By Tristan Cohan
at 2015-03-30T17:36

Table of Contents





先提供linux版本為:Linux Mint 17 Qiana



小弟目前在做專題中需要用到字串轉成點陣圖印出,故參考以下網頁
https://github.com/descent/progs/tree/master/cpp11_utf8



為了能編譯,照著以下網頁步驟安裝了clang與libc++
http://www.cnblogs.com/codemood/p/3142848.html



有先編譯hello world,順利的成功了也能執行

clang++ -g -stdlib=libc++ -std=c++11 -I/usr/include/c++/v1/
-I/usr/include/c++/v1/include/ `freetype-config --cflags` -Wall -W -I. -c
hello.cpp

clang++ -o hello hello.o -stdlib=libc++ -std=c++11 -I/usr/include/c++/v1/
-I/usr/include/c++/v1/include/ `freetype-config --libs`




在把字串轉點陣圖的main.cpp轉.o檔時跳出兩個警告,說有兩個變數沒在程式碼裡調用到
(我認為是沒有影響)
main1.cpp:76:6: warning: unused variable 'starty' [-Wunused-variable]
int starty = pen_y;
^
main1.cpp:75:6: warning: unused variable 'startx' [-Wunused-variable]
int startx = pen_x; //startx與 starty需定義 ...
^
2 warnings generated.




在把.o檔轉成執行檔時跳出錯誤:
xxs4129-Aspire-5750G xxs4129 # clang++ -o main1 main1.o -stdlib=libc++
-std=c++11 -I/usr/include/c++/v1/ -I/usr/include/c++/v1/include/
`freetype-config --libs`

/usr/bin/ld: main1.o: undefined reference to symbol
'__cxa_free_exception@@CXXABI_1.3'
//usr/lib/x86_64-linux-gnu/libstdc++.so.6: error adding symbols: DSO missing
from command line
clang: error: linker command failed with exit code 1 (use -v to see
invocation)




有去google過但還是看不懂如何解決

這是我用的 main1.cpp 跟原本的一樣只是自己為了讀懂多了蠻多註解
https://mega.co.nz/#!x4lR3Y6K!L8_Z5PmLnd_yYhewgQy1FZPsaDmU0MwqfUbffJs1wxQ


還請各位大大有空能幫忙看一下







--
Tags: Linux

All Comments

Rebecca avatar
By Rebecca
at 2015-04-01T05:31
編 main1.o 的時候有加 -stdlib=libc++ 嗎?
Tracy avatar
By Tracy
at 2015-04-04T10:33
hello 程式碼編譯要兩行似乎多此一舉
Mason avatar
By Mason
at 2015-04-06T13:29
clang++ -o main1 main.cppp ..... 不就可以了 ?
David avatar
By David
at 2015-04-08T00:26
若你沒有其他特殊多個程式碼要編譯,不需要 -c 然後分開
Kyle avatar
By Kyle
at 2015-04-11T07:45
http://i.imgur.com/nV5c9Ga.png
Elizabeth avatar
By Elizabeth
at 2015-04-13T18:26
另外你的問題我比較想知道的是,你編譯一般的 c++ 程式
Joseph avatar
By Joseph
at 2015-04-17T20:27
能夠正常工作嗎?
Queena avatar
By Queena
at 2015-04-20T16:34
我是因為這個程式才去裝linux ,還是新手看不太懂指令編譯
Suhail Hany avatar
By Suhail Hany
at 2015-04-22T17:48
k大說的編譯一般c++程式是說用上面clang++指令編譯嗎?
Faithe avatar
By Faithe
at 2015-04-22T19:35
這樣說好了,原本沒有修改的版本,你可以正常編譯嗎
Agnes avatar
By Agnes
at 2015-04-25T02:34
是的,用 clang++ 編譯一般的 c++ code
Kristin avatar
By Kristin
at 2015-04-26T18:39
我試過只要有用到 -stdlib=libc++ 就會跳出一樣的錯誤
Eden avatar
By Eden
at 2015-04-28T05:08
用c++版本的hello world也會跳出錯誤
Bethany avatar
By Bethany
at 2015-04-29T22:27
有點好奇是為了什麼功能才裝 libc++ 的嗎?
Wallis avatar
By Wallis
at 2015-05-04T00:24
在 wstring2utf8.h 裡有個<codecvt> 好像只有clang libc++有
Emma avatar
By Emma
at 2015-05-06T23:58
k大的那張圖我有照著編譯,第一個原版的編譯跳出了好幾行
Hamiltion avatar
By Hamiltion
at 2015-05-07T23:39
未參考定義到,第二個編譯結果錯誤碼與圖上的差不多
Annie avatar
By Annie
at 2015-05-12T02:47
第3個結果跟第一個一樣跳出好幾行未參考定義到
Heather avatar
By Heather
at 2015-05-14T18:30
用 clang++ -v 看看 #include 搜尋路徑
感覺可能他先搜到 libstdc++ 的了
Carol avatar
By Carol
at 2015-05-19T23:29
X8xX6MLk9FfmpPSeQ 這是我clang++ -v的結果
Audriana avatar
By Audriana
at 2015-05-24T08:09
clang++ -v 後面接本來拿來編譯的參數
Dora avatar
By Dora
at 2015-05-26T14:41
-I 那些也都要,真的有編譯東西它才會顯示搜尋路徑
Lydia avatar
By Lydia
at 2015-05-30T18:07
https://mega.co.nz/#!10tG0TzR!8AQVN4o51u-CynUN3VjDTRH6i9
DgEMfM41obJ6bjl2A 結果很長 所以就上傳txt檔
Susan avatar
By Susan
at 2015-05-31T03:12
因為codecvt不在標準內,你該考慮boost的utf_to_utf
Robert avatar
By Robert
at 2015-06-02T11:49
如果使用boost的utf_to_utf是單純更動wstring2utf8.h檔嗎?
Callum avatar
By Callum
at 2015-06-04T21:09
剛看到 gcc 5 已經有 codecvt 了,可以嘗試看看
Irma avatar
By Irma
at 2015-06-09T10:37
http://libcxx.llvm.org/ 有說在 Linux 可能要多加參數
Doris avatar
By Doris
at 2015-06-11T10:34
看不太懂要加哪些參數
Kristin avatar
By Kristin
at 2015-06-15T05:21
我打了 clang++ -o main1 main1.cpp -stdlib=libc++ hellowo
Michael avatar
By Michael
at 2015-06-20T00:57
d.cpp -nodefaultlibs -lc++ -lc++abi -lm -lc -lgcc_s -lgc
Jessica avatar
By Jessica
at 2015-06-21T16:08
c 但出現找不到-lc++abi 上面那個helloworld.cpp多打的
Tom avatar
By Tom
at 2015-06-26T14:57
為何你要加上 -nodefaultlibs 這個參數 @@
Dora avatar
By Dora
at 2015-07-01T07:59
我看不太懂,照網頁上的參數打
Xanthe avatar
By Xanthe
at 2015-07-04T14:33
在Using libc++ in your programs的linux下有兩種
我是參考那個的
Daniel avatar
By Daniel
at 2015-07-06T03:22
沒關係,一般不用,不過你後面有指定其他的 lib 就還好
另外感覺你這程式好像搞很久了...
我這邊測試過都是在 mac os x 環境,clang 本身沒問題
clang 是 xcode 提供的,都可以正確編譯
Heather avatar
By Heather
at 2015-07-08T23:46
我在 FreeBSD 測試,clang 預設用 libc++ 也很正常
Isabella avatar
By Isabella
at 2015-07-11T12:10
boost 有替代方案,程式碼簡單改一下就好
只是重點你系統還需要有一份 boost
Dora avatar
By Dora
at 2015-07-13T07:04
主要都卡在linux跟clang++才編譯不過去吧,main的程式碼倒是
Lauren avatar
By Lauren
at 2015-07-17T23:51
讀懂了
Hedda avatar
By Hedda
at 2015-07-20T09:12
這樣吧.. 我剛剛幫你改一下改用 boost
Elma avatar
By Elma
at 2015-07-20T19:09
http://x.co/8f16Z 這是那個 wstring2utf8.h 檔案內容
記得你應該會用 apt-get install 裝上 boost 相關套件
Tom avatar
By Tom
at 2015-07-21T02:25
我這邊是裝上 libboost1.55-dev 就可以了
Ursula avatar
By Ursula
at 2015-07-25T16:38
感謝大大,小弟正在安裝boost中,想問編譯時需要怎麼下指令呢
Yuri avatar
By Yuri
at 2015-07-28T21:44
忘記說還要裝 libboost 這個 lib, 上面那是標頭檔案
Kumar avatar
By Kumar
at 2015-07-31T13:46
最後 -l 不要忘記加上像是: -lboost_thread
Connor avatar
By Connor
at 2015-08-03T14:58
結論我這邊 apt 裝上 libboost1.55-dev libboost1.55
Dorothy avatar
By Dorothy
at 2015-08-04T20:49
都懶用 mac os x or freebsd 應該也是解法 XD
Agnes avatar
By Agnes
at 2015-08-09T19:43
終於成功了,感謝大大,小弟在這裡linux跟clang卡好久了

Linux程式設計完全攻略

Elizabeth avatar
By Elizabeth
at 2015-03-30T12:32
意者站內信。 http://www.books.com.tw/products/0010627763 書名: Linux程式設計完全攻略:記憶體管理×檔案系統×多執行緒×網路×多媒體 出版社: 博碩文化 作者: 楊宗德、呂光宏、劉雍 編著;廖信彥/審校 書況:全新 內附光碟 交易方式:林口長庚商圈面交。 ...

接USB總要插拔五六次

Caroline avatar
By Caroline
at 2015-03-29T15:53
先提供一下版本uname -a Linux ABC 3.11.0-26-generic #45~precise1-Ubuntu SMP Tue Jul 15 04:02:35 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux 想請問一下各位有沒有遇過這個問題 我目前經常在Li ...

Captive Portal疑問

Kristin avatar
By Kristin
at 2015-03-29T14:36
HI 因為暫時無人知道這個問題的原因 我在國外網站上看到完全相同的問題 目前改到論壇上討論 我目前做了一些測試或許也能提供一些改善方向 後續如有linux板友遇到相同問題可參考下列連結(無法保證未來會有結論) http://www.raspberrypi.org/forums/viewtopic.php?f= ...

Dell E2014h 在 Linux 上的解析度問題

Delia avatar
By Delia
at 2015-03-28T23:45
※ [本文轉錄自 ask 看板 #1L5YPX7Z ] 作者: CP64 (( ̄▽ ̄#)﹏﹏) 站內: ask 標題: [請問] Dell E2014h 在 Linux 上的解析度問題 時間: Sat Mar 28 11:56:13 2015 是這樣的 我買了一個 Dell E2014h 螢幕 用 V ...

awk與csh 搭配傳入外部變數的問題

Lily avatar
By Lily
at 2015-03-28T03:07
太多行不好推文, 原諒我用回文浪費一下版面. 我用 Mac (10.10.2) 試, 結果是你要的耶. 這中間肯定有什麼誤會... Area51-MBP:0 rickie$ cat 1.txt 3-6 aaaa.tif 4 bbbb.tif 9-7 cccc.tif Area51-MBP: ...