[问题] boost的几点新手问题请赐教

楼主: opaopaer (Mox)   2017-06-20 21:21:16
开发平台(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执行有成功
所以起始专案要设定为最后执行的那个吗?
作者: Jockey66666 (往事已成追忆)   2017-06-21 11:34:00
专案档案升级成vs2017的会build不过?boost就跟着你vc版本就好了安装2015不会有v110 toolset可以选你是不是startup project选错了没选到exe
楼主: opaopaer (Mox)   2017-06-21 11:40:00
2012、2015、2017都build过,但都跳出同样错误但若使用程式码分析会跳出错误这样到底算程式码正确吗?可是sample.exe的确可执行..理想状况是原本2012就用2012开? 还是建议通通升级升级包含toolset及对象.Net framework因为一开始用vs2017+.NET 4.7有跳出.net不符的warning虽只是warning但怕有不必要的问题,就重灌改成2012+4.0现在灌完2015又强制灌4.5...可是没有2017的warning搞得昏头转向的...Y
作者: Jockey66666 (往事已成追忆)   2017-06-21 13:55:00
所以我问是不是startup project选错
楼主: opaopaer (Mox)   2017-06-21 17:26:00
刚刚测试切换起始方案有成功!可是有点奇怪...我在正文补充y

Links booklink

Contact Us: admin [ a t ] ucptt.com