[問題] 跨平台過不去

看板C_and_CPP作者時間12年前 (2012/05/19 16:52), 編輯推噓2(2028)
留言30則, 9人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Linux C GNU 4.6.1 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) Linux C function 問題(Question): 這是我們學校 DS Project AOE 今天 DS 機測 原本在 Linux 上跑的都很正常 到了機測平台 助教堅持要用他們自己的 Win XP 和 Dev-C++ (GNU 3.4.2) 結果跑出 runtime error 我不懂為什麼誇個平台就差這麼多 我就說 3.4.2 已經這麼舊的版本 問題一大堆 為什麼還要用他來測 他們就說:比賽也不事一樣要上傳到他們的平台測 (沒記錯 ACM 好像就是 Linux 平台......) 問我要不要修改 我心裡想這種error短時間內改得出來很困難 根本就不知道問題出在哪裡 自己帶著 Linux 筆電來就不給我測 分數就可想而知 程式碼和一些 input 在下 http://dl.dropbox.com/u/35347597/DS.zip 現在心情不好的是 給我的感覺好像是 Linux 都該死的樣子 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.135.24.88 ※ 編輯: iWRZ 來自: 140.135.24.88 (05/19 17:00)

05/19 17:21, , 1F
跑了 1.txt 出現 Segmentation Fault Line: 322
05/19 17:21, 1F

05/19 17:22, , 2F
我是 Win7 GCC 4.6.1
05/19 17:22, 2F

05/19 17:32, , 3F
Debian 6 + gcc-4.4.5 跑 1.txt 沒掛,用 valgrind 測試中
05/19 17:32, 3F

05/19 17:36, , 4F
你的程式有很多為初始化的變數耶,valgrind 回報一堆
05/19 17:36, 4F

05/19 17:36, , 5F
Conditional jump or move depends on uninitialised valu
05/19 17:36, 5F

05/19 17:37, , 6F
-e(s)
05/19 17:37, 6F

05/19 17:38, , 7F
像是你的 ver=new Vertex[] 沒清空就拿來做 if 判斷
05/19 17:38, 7F

05/19 17:39, , 8F
所以我覺得應該是你的程式有問題才會這樣 orz
05/19 17:39, 8F

05/19 17:47, , 9F
struct 所使用的記憶體空間沒初始化
05/19 17:47, 9F

05/19 17:48, , 10F

05/19 17:48, , 11F
改成這樣就行了
05/19 17:48, 11F

05/19 20:25, , 12F
如果是我,不會跟自己的分數過不去...XD
05/19 20:25, 12F

05/19 20:39, , 13F
這的確有可能, 所以最好在你要測試的環境開發比較沒問題
05/19 20:39, 13F

05/19 20:40, , 14F
我之前也因為要在 mac/linux/win 環境執行,修改了不少問題
05/19 20:40, 14F

05/19 20:40, , 15F
大部份都是自己的程式沒寫好
05/19 20:40, 15F

05/19 23:39, , 16F
我們系反而會要求在系上 FreeBSD 工作站上 g++4.7 測,因為
05/19 23:39, 16F

05/19 23:39, , 17F
我們會有很多 C++11 feature 要寫 orz
05/19 23:39, 17F

05/19 23:40, , 18F
不過我自己 Linux g++4.6 + std=c++0x flag 就可以惹XD
05/19 23:40, 18F

05/19 23:44, , 19F
學校已經在用C++11了喔?好酷
05/19 23:44, 19F

05/20 08:58, , 20F
因為老師很喜歡研究語言特性(?) 所以作業都出這個XDD
05/20 08:58, 20F

05/20 22:49, , 21F
結論,自己沒寫好,所以有些平台不能跑,技不如人不要怪人
05/20 22:49, 21F

05/20 22:50, , 22F
如果要加新特性就要加上#ifdef 之類的判斷也可以跨平台
05/20 22:50, 22F

05/20 22:50, , 23F
跨平台真的沒有想像中的那麼簡單啊...不同架構的話更慘XD
05/20 22:50, 23F

05/22 18:31, , 24F
沒寫好+1,不過學生沒寫好是可以接受的吧
05/22 18:31, 24F

05/23 03:40, , 25F
by the way... flag有加基本上問題就少很多了, 最少最
05/23 03:40, 25F

05/23 03:42, , 26F
少也要灌個 VM 來 build, 這是基本常識, 一樣都是 gcc
05/23 03:42, 26F

05/23 03:42, , 27F
也沒用其他 lib, port 不過真的有點扯
05/23 03:42, 27F

05/23 03:44, , 28F
身為助教我也討厭別人帶著自己的筆電來 demo, 甚至跟
05/23 03:44, 28F

05/23 03:45, , 29F
我說他在家裡跑得過我電腦上就跑不過, 問題是你寫的是
05/23 03:45, 29F

05/23 03:46, , 30F
C語言... port 不過怪我囉? 又不是寫 embeded C
05/23 03:46, 30F
文章代碼(AID): #1Fjry_Vz (C_and_CPP)