[問題] boost的幾點新手問題請賜教

看板C_and_CPP (C/C++)作者 (Mox)時間8年前 (2017/06/20 21:21), 8年前編輯推噓0(0016)
留言16則, 2人參與, 最新討論串1/1
開發平台(Platform): (Ex: Win10, Linux, ...) win7 x64 編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出) VC++ windows 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) boost library 問題(Question): 各位前輩好,第一次在貴版發問,再下畢業後程式功力已經退化到猴子程度了 現在因為工作需要得把遺物重新建置出來,有整包的方案與lib,底下有三個專案 程式是c++ 需求.netframework 4.0 ,使用boost library 起初用visual studio 2017+boost v141,發現該專案是vs 2012 =>2017內建的平台工具組沒有2012 (v110) =>整台電腦重灌,裝vs 2012 +boost v110 =>專案compiler過,但執行偵錯的時候出錯(xxx.dll不是正確的32位元應用程式) =>其他人有用2015重建成功的回報,目前在灌vs 2015 community 問題1: boost部分我需要再針對2015重新build嗎? 已安裝好vs2012 且執行過bootstrap.bat及b2 install 因為當時是完全乾淨所以沒刻意修改project-config.jam; 現在打算用2015測試,是否得重新建置boost,參數要改成using msvc : 14.0 嗎? 平台工具組 Visual Studio 2012 (v110) ,2015 (v140), 2017(v141) 換句話說 ,舊專案用新的vs重建時,boost要配合舊專案(2012),還是配合2015? 問題2: 2015有無內建2012(v110)的平台工具組? (尚未測試乾淨機直接裝vs2015) 有的話直接裝vs2015 +b2 install會不會比較省事? 還是說不論用2015或2017,因為專案是2012,所以我只能升級專案, 否則就得指定為2012的平台工具組,因此boost得建v110而不是v140或v141? 問題3: 最終結果會產生sample.exe執行檔。 奇怪的是,compiler沒報錯(有warning), 偵錯時會冒出sample.dll不是正確的32位元應用程式 可是dll本來就不是應用程式呀? 而且直接進debug或release資料夾內可直接執行sample.exe,唯獨vs內不能執行... 這樣算成功嗎?還是說有可能功能異常? 感謝耐心看完這篇新手問題,謝謝 6/21 edit: 聽從jockey的建議變更起始專案有執行成功,但只有一次 該方案有4個專案(A B C D),相依性關係是 A相依於B B相依於C、D C、D無相依性 建置順序是CDBA 起始專案是B(編譯+執行),偵錯執行跑出上文的錯誤 起始B編譯,再切起始A執行有成功 所以起始專案要設定為最後執行的那個嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.169.163.7 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1497964878.A.795.html

06/21 11:34, , 1F
專案檔案升級成vs2017的會build不過?
06/21 11:34, 1F

06/21 11:35, , 2F
boost就跟著你vc版本就好了
06/21 11:35, 2F

06/21 11:36, , 3F
安裝2015不會有v110 toolset可以選
06/21 11:36, 3F

06/21 11:37, , 4F
你是不是startup project選錯了沒選到exe
06/21 11:37, 4F

06/21 11:40, , 5F
2012、2015、2017都build過,但都跳出同樣錯誤
06/21 11:40, 5F

06/21 11:41, , 6F
但若使用程式碼分析會跳出錯誤
06/21 11:41, 6F

06/21 11:42, , 7F
這樣到底算程式碼正確嗎?可是sample.exe的確可執行..
06/21 11:42, 7F

06/21 11:44, , 8F
理想狀況是原本2012就用2012開? 還是建議通通升級
06/21 11:44, 8F

06/21 11:46, , 9F
升級包含toolset及對象.Net framework
06/21 11:46, 9F

06/21 11:47, , 10F
因為一開始用vs2017+.NET 4.7有跳出.net不符的warning
06/21 11:47, 10F

06/21 11:48, , 11F
雖只是warning但怕有不必要的問題,就重灌改成2012+4.0
06/21 11:48, 11F

06/21 11:49, , 12F
現在灌完2015又強制灌4.5...可是沒有2017的warning
06/21 11:49, 12F

06/21 11:49, , 13F
搞得昏頭轉向的...Y
06/21 11:49, 13F

06/21 13:55, , 14F
所以我問是不是startup project選錯
06/21 13:55, 14F

06/21 17:26, , 15F
剛剛測試切換起始方案有成功!
06/21 17:26, 15F

06/21 17:27, , 16F
可是有點奇怪...我在正文補充y
06/21 17:27, 16F
※ 編輯: opaopaer (210.59.249.97), 06/21/2017 17:40:51
文章代碼(AID): #1PII5EUL (C_and_CPP)
文章代碼(AID): #1PII5EUL (C_and_CPP)