[問題] undefined symbols for architecture
開發平台(Platform): (Ex: Win10, Linux, ...)
macOS Sierra 10.12.6
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
在 windows 97 用 gcc 3.4 左右寫的吧
我則是用 gcc version 7.1.0 要編譯它
問題(Question):
原本用 gcc 指令編譯程式時有一個問題
會出現找不到 omp.h 這個文件的訊息,
但後來照著網路上的教學,裝了 gcc 7.1.0
這個問題就解決了。
但還又有新的訊息
Undefined symbols for architecture x86_64
"_calculateBend" , reference from:
_ComputeForces in ccBysBIi.o
ld: symbol(s) not found for architecture x86_64
collect2: 錯誤:ld 回傳 1
我上網查了很久,別人也有相同問題,但還是不知道該如何解決。
希望有人能給我指引,謝謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.114.123.158
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1505378442.A.258.html
推
09/14 17:11, , 1F
09/14 17:11, 1F
→
09/14 17:11, , 2F
09/14 17:11, 2F
→
09/14 17:19, , 3F
09/14 17:19, 3F
→
09/14 17:22, , 4F
09/14 17:22, 4F
推
09/14 18:00, , 5F
09/14 18:00, 5F
→
09/14 18:34, , 6F
09/14 18:34, 6F
→
09/14 18:34, , 7F
09/14 18:34, 7F
→
09/14 18:35, , 8F
09/14 18:35, 8F
→
09/15 09:57, , 9F
09/15 09:57, 9F
→
09/15 14:38, , 10F
09/15 14:38, 10F
→
09/15 14:44, , 11F
09/15 14:44, 11F
→
09/15 15:08, , 12F
09/15 15:08, 12F
→
09/15 17:27, , 13F
09/15 17:27, 13F
→
09/15 17:27, , 14F
09/15 17:27, 14F
→
09/15 22:18, , 15F
09/15 22:18, 15F
→
09/16 04:06, , 16F
09/16 04:06, 16F
→
09/16 04:06, , 17F
09/16 04:06, 17F
→
09/16 12:33, , 18F
09/16 12:33, 18F
→
09/16 12:33, , 19F
09/16 12:33, 19F
→
09/16 14:33, , 20F
09/16 14:33, 20F
→
09/16 14:33, , 21F
09/16 14:33, 21F
→
09/16 14:58, , 22F
09/16 14:58, 22F
→
09/16 14:58, , 23F
09/16 14:58, 23F
我願意提供所有的訊息,但我不知道什麼訊息才是重要的。
這個程式是拿來模擬揉紙。
整理一下我的邏輯。
資料夾內的程式可能有相關性,
所雖然都是 .c 的副檔名,但我必需把它編譯成 .o 的執行檔。
惟一的例外是 crumpling.c 的程式,編譯後的執行檔為 crumpling.out 。
這個程式在 windows 中能編譯,其 .exe 檔也能執行。
但在我的 Mac 筆電中卻不行,一開始編譯出現找不到 'omp.h' 的訊息,
後來裝了新版的 gcc 7.1.0 後就沒有這個訊息了,取而代之的是
Undefined symbols for architecture x86_64
"_calculateBend", referenced from:
_ComputeForce in ccybGJGF.o
ld: symbol(s) not found for architecture x86_64
collect2: 錯誤: ld 回傳 1
但是我找不到 ccybGJGF.o 這個檔案。
之後我刪除了所有的 .o 檔案,開始重新一個一個指令的編譯資料夾內的所有檔案,
但是很多檔案不能編譯,甚至出現警告訊息,例如
警告: 隱念宣告函式 「fabs」 [Wimplicit-function-declaration]
之類的訊息。
然後我發現有些我原本不能編譯的程式,不知道是不是因為編了某些程式,
後來就可以編譯了。
以上,不知道我應該要再提供什麼訊息比較好?謝謝。
※ 編輯: yin0416 (122.116.53.63), 09/16/2017 22:18:20
→
09/17 00:36, , 24F
09/17 00:36, 24F
→
09/17 00:36, , 25F
09/17 00:36, 25F
→
09/17 00:36, , 26F
09/17 00:36, 26F
→
09/17 01:03, , 27F
09/17 01:03, 27F