[問題] boost搭配VS2k5的debug下為何不能run?

看板C_and_CPP作者 (casper)時間13年前 (2010/12/13 21:15), 編輯推噓2(206)
留言8則, 4人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, Gcc, Linux, ...) Windows 7 Visual Studio 2005 額外使用到的庫(Library Used) (Ex: OpenGL, ...) boost 1.41.0 問題(Question): 使用boost的text_oarchive、text_iarchive、binary_oarchive、 binary_iarchive跟map.hpp來做序列化。 我用Release版搭配 多執行緒 DLL (/MD) 可以正常執行。 可是因為想要debug的關係, 所以切入到Debug版本,但是卻不能搭配 多執行緒 DLL (/MD), 雖然可以Compile,可是Compile過後,要執行程式無法執行。 但是若用Debug搭配多執行緒偵錯 (/MTd)程式卻又可以跑。 換到其他三者就是不行... 餵入的資料(Input): 一個已經序列化過後的txt檔。 預期的正確結果(Expected Output): 程式可以跑,將txt檔載入到map中。 錯誤結果(Wrong Output): 雖然可以Compile,可是Compile過後,要執行程式無法執行。 會出現錯誤訊息: 無法啟動程式.. home2-2/debug/home2-2.exe 這個應用程式無法啟動,因為應用程式組態不正確。 請檢察資訊清單檔有無錯誤,重新安裝應用程式或許可以修復這個問題。 程式碼(Code): (請善用置底文標色功能) #include <boost/archive/text_oarchive.hpp> #include <boost/archive/text_iarchive.hpp> #include <boost/archive/binary_oarchive.hpp> #include <boost/archive/binary_iarchive.hpp> #include <boost/serialization/map.hpp> int _tmain(int argc, _TCHAR* argv[]) { map<wstring,int> Pe; ifstream ifs("boost1word.txt",ios::binary); boost::archive::text_iarchive ia(ifs); ia >> Pe; return 0; } 補充說明(Supplement): 可能是應用程式要用到的link沒有設定好, 但我卻始終設定失敗,因為我連exe檔都還沒建成功就先卡住了... 我該怎麼辦呢?? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 125.231.216.25

12/13 21:16, , 1F
你沒把library build出來當然link不到吧
12/13 21:16, 1F

12/13 21:16, , 2F
serialization是少數幾個需要先build好的lib
12/13 21:16, 2F

12/13 21:16, , 3F
至於boost的lib要怎麼build,請去官網查tutorial
12/13 21:16, 3F

12/13 21:25, , 4F
是哦~
12/13 21:25, 4F

12/13 21:26, , 5F
雖然沒有很懂~ 但先照你說的方法做看看~ 謝謝
12/13 21:26, 5F

12/13 21:39, , 6F
如果沒有Build出來,應該在compile時就不會過了吧?
12/13 21:39, 6F

12/13 21:39, , 7F
是這樣嗎? @@
12/13 21:39, 7F

12/13 21:54, , 8F
link 階段才會, header 有給正確的話 compiler 不會抱怨
12/13 21:54, 8F
文章代碼(AID): #1D1XnOKR (C_and_CPP)