開發平台(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執行有成功
所以起始專案要設定為最後執行的那個嗎?