作者opaopaer (Mox)
看板C_and_CPP
標題[問題] boost的幾點新手問題請賜教
時間Tue Jun 20 21:21:16 2017
開發平台(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://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1497964878.A.795.html
1F:→ Jockey66666: 專案檔案升級成vs2017的會build不過? 06/21 11:34
2F:→ Jockey66666: boost就跟著你vc版本就好了 06/21 11:35
3F:→ Jockey66666: 安裝2015不會有v110 toolset可以選 06/21 11:36
4F:→ Jockey66666: 你是不是startup project選錯了沒選到exe 06/21 11:37
5F:→ opaopaer: 2012、2015、2017都build過,但都跳出同樣錯誤 06/21 11:40
6F:→ opaopaer: 但若使用程式碼分析會跳出錯誤 06/21 11:41
7F:→ opaopaer: 這樣到底算程式碼正確嗎?可是sample.exe的確可執行.. 06/21 11:42
8F:→ opaopaer: 理想狀況是原本2012就用2012開? 還是建議通通升級 06/21 11:44
9F:→ opaopaer: 升級包含toolset及對象.Net framework 06/21 11:46
10F:→ opaopaer: 因為一開始用vs2017+.NET 4.7有跳出.net不符的warning 06/21 11:47
11F:→ opaopaer: 雖只是warning但怕有不必要的問題,就重灌改成2012+4.0 06/21 11:48
12F:→ opaopaer: 現在灌完2015又強制灌4.5...可是沒有2017的warning 06/21 11:49
13F:→ opaopaer: 搞得昏頭轉向的...Y 06/21 11:49
14F:→ Jockey66666: 所以我問是不是startup project選錯 06/21 13:55
15F:→ opaopaer: 剛剛測試切換起始方案有成功! 06/21 17:26
16F:→ opaopaer: 可是有點奇怪...我在正文補充y 06/21 17:27
※ 編輯: opaopaer (210.59.249.97), 06/21/2017 17:40:51