而我编译出来的静态库文件名为:libboost_regex-vc110-mt-gd-1_60.lib。就是一个编译器版本不一样,难道这样子不能通用么?还是boost库要怎么设置?如果换个开发工具就得重编一个版本的lib就太麻烦了。
17 个解决方案
#1
不能共用,必须重新编译。
就算是vs2015和vs2015 update1也不通用。
就算是vs2015和vs2015 update1也不通用。
#2
regex标准库已经自带为啥还要用boost的?
#3
显得更高大上嘛。
#4
我在VS2012上编译出静态的boost库,然后可以链接使用;然后我换成VS2015编译同样的工程链接的时候报错
而我编译出来的静态库文件名为:libboost_regex-vc110-mt-gd-1_60.lib。就是一个编译器版本不一样,难道这样子不能通用么?还是boost库要怎么设置?如果换个开发工具就得重编一个版本的lib就太麻烦了。
regex标准库已经自带为啥还要用boost的?
#5
新标准库有没有我不清楚,但老标准库肯定没有。低版本的VC中,regex库似乎是微软自己搞的,用起来和boost中的很不一样。
我在VS2012上编译出静态的boost库,然后可以链接使用;然后我换成VS2015编译同样的工程链接的时候报错
而我编译出来的静态库文件名为:libboost_regex-vc110-mt-gd-1_60.lib。就是一个编译器版本不一样,难道这样子不能通用么?还是boost库要怎么设置?如果换个开发工具就得重编一个版本的lib就太麻烦了。
regex标准库已经自带为啥还要用boost的?
#6
C++98标准库里包含regex?
我在VS2012上编译出静态的boost库,然后可以链接使用;然后我换成VS2015编译同样的工程链接的时候报错
而我编译出来的静态库文件名为:libboost_regex-vc110-mt-gd-1_60.lib。就是一个编译器版本不一样,难道这样子不能通用么?还是boost库要怎么设置?如果换个开发工具就得重编一个版本的lib就太麻烦了。
regex标准库已经自带为啥还要用boost的?
c++11 有。
#7
C++98标准库里包含regex?
我在VS2012上编译出静态的boost库,然后可以链接使用;然后我换成VS2015编译同样的工程链接的时候报错
而我编译出来的静态库文件名为:libboost_regex-vc110-mt-gd-1_60.lib。就是一个编译器版本不一样,难道这样子不能通用么?还是boost库要怎么设置?如果换个开发工具就得重编一个版本的lib就太麻烦了。
regex标准库已经自带为啥还要用boost的?
C++11中增加
早在VS2008 SP1 中已经自带了。
#8
新标准库有没有我不清楚,但老标准库肯定没有。低版本的VC中,regex库似乎是微软自己搞的,用起来和boost中的很不一样。
不管谁搞得,但标准中有了,自然要朝符合标准的走。
至于boost,和标准不一样很正常。
#9
lib无法通用,dll还可以。
即使有C++11,编译boost asio还是要用到boost regex
即使有C++11,编译boost asio还是要用到boost regex
#10
就算是同一个VC版本,debug和release的,ansi和unicode的静态库都不能通用。要通用的话去做动态库去,只要用纯C做DLL接口,在别的语言里都可以用,更别谈不同VC版本了。
#11
就算是同一个VC版本,debug和release的,ansi和unicode的静态库都不能通用。要通用的话去做动态库去,只要用纯C做DLL接口,在别的语言里都可以用,更别谈不同VC版本了。
#12
嗯,明白了!我在VS2012上试下编出boost的DLL和lib然后在VS2015工程里引用这个DLL相关的,编译链接正常通过,但是运行出现异常!同样的工程放到VS2012编译运行结果是正常的。这又有何差异了?
就算是同一个VC版本,debug和release的,ansi和unicode的静态库都不能通用。要通用的话去做动态库去,只要用纯C做DLL接口,在别的语言里都可以用,更别谈不同VC版本了。
dll接口是纯C的可以随便用
但boost的dll不是纯C的接口无法通用。
#13
你可以在vs2015里面选择v120的工具平台
也就是说要用vs2012的编译器才行
也就是说要用vs2012的编译器才行
#14
嗯,明白了!我在VS2012上试下编出boost的DLL和lib然后在VS2015工程里引用这个DLL相关的,编译链接正常通过,但是运行出现异常!同样的工程放到VS2012编译运行结果是正常的。这又有何差异了?
就算是同一个VC版本,debug和release的,ansi和unicode的静态库都不能通用。要通用的话去做动态库去,只要用纯C做DLL接口,在别的语言里都可以用,更别谈不同VC版本了。
dll接口是纯C的可以随便用
但boost的dll不是纯C的接口无法通用。
#15
bjam toolset=msvc-11.0 variant=debug,release threading=multi link=static,,,注意这里的msvc=11.0表示与vs2012版本对应
#16
好像不对啊,我这边有个用VS20005编译出的codejock的XTP界面库的DLL和Lib,这个界面库是用C++写的,在VS2012引用这两个DLL和Lib完全没有问题出现啊。 嗯,明白了!我在VS2012上试下编出boost的DLL和lib然后在VS2015工程里引用这个DLL相关的,编译链接正常通过,但是运行出现异常!同样的工程放到VS2012编译运行结果是正常的。这又有何差异了?
就算是同一个VC版本,debug和release的,ansi和unicode的静态库都不能通用。要通用的话去做动态库去,只要用纯C做DLL接口,在别的语言里都可以用,更别谈不同VC版本了。
dll接口是纯C的可以随便用
但boost的dll不是纯C的接口无法通用。
表示怀疑,很常用的CString的实现都改了。。
#17
不通用。但是Boost中大部分库都不需要编译,你把Boost下载下来解压到一个目录里,VS2012和VS2015的项目中include一下它就行了,等需要用到必须编译的库时再编译
#1
不能共用,必须重新编译。
就算是vs2015和vs2015 update1也不通用。
就算是vs2015和vs2015 update1也不通用。
#2
我在VS2012上编译出静态的boost库,然后可以链接使用;然后我换成VS2015编译同样的工程链接的时候报错
而我编译出来的静态库文件名为:libboost_regex-vc110-mt-gd-1_60.lib。就是一个编译器版本不一样,难道这样子不能通用么?还是boost库要怎么设置?如果换个开发工具就得重编一个版本的lib就太麻烦了。
regex标准库已经自带为啥还要用boost的?
#3
我在VS2012上编译出静态的boost库,然后可以链接使用;然后我换成VS2015编译同样的工程链接的时候报错
而我编译出来的静态库文件名为:libboost_regex-vc110-mt-gd-1_60.lib。就是一个编译器版本不一样,难道这样子不能通用么?还是boost库要怎么设置?如果换个开发工具就得重编一个版本的lib就太麻烦了。
regex标准库已经自带为啥还要用boost的?
显得更高大上嘛。
#4
我在VS2012上编译出静态的boost库,然后可以链接使用;然后我换成VS2015编译同样的工程链接的时候报错
而我编译出来的静态库文件名为:libboost_regex-vc110-mt-gd-1_60.lib。就是一个编译器版本不一样,难道这样子不能通用么?还是boost库要怎么设置?如果换个开发工具就得重编一个版本的lib就太麻烦了。
regex标准库已经自带为啥还要用boost的?
#5
新标准库有没有我不清楚,但老标准库肯定没有。低版本的VC中,regex库似乎是微软自己搞的,用起来和boost中的很不一样。
我在VS2012上编译出静态的boost库,然后可以链接使用;然后我换成VS2015编译同样的工程链接的时候报错
而我编译出来的静态库文件名为:libboost_regex-vc110-mt-gd-1_60.lib。就是一个编译器版本不一样,难道这样子不能通用么?还是boost库要怎么设置?如果换个开发工具就得重编一个版本的lib就太麻烦了。
regex标准库已经自带为啥还要用boost的?
#6
C++98标准库里包含regex?
我在VS2012上编译出静态的boost库,然后可以链接使用;然后我换成VS2015编译同样的工程链接的时候报错
而我编译出来的静态库文件名为:libboost_regex-vc110-mt-gd-1_60.lib。就是一个编译器版本不一样,难道这样子不能通用么?还是boost库要怎么设置?如果换个开发工具就得重编一个版本的lib就太麻烦了。
regex标准库已经自带为啥还要用boost的?
c++11 有。
#7
C++98标准库里包含regex?
我在VS2012上编译出静态的boost库,然后可以链接使用;然后我换成VS2015编译同样的工程链接的时候报错
而我编译出来的静态库文件名为:libboost_regex-vc110-mt-gd-1_60.lib。就是一个编译器版本不一样,难道这样子不能通用么?还是boost库要怎么设置?如果换个开发工具就得重编一个版本的lib就太麻烦了。
regex标准库已经自带为啥还要用boost的?
C++11中增加
早在VS2008 SP1 中已经自带了。
#8
新标准库有没有我不清楚,但老标准库肯定没有。低版本的VC中,regex库似乎是微软自己搞的,用起来和boost中的很不一样。
不管谁搞得,但标准中有了,自然要朝符合标准的走。
至于boost,和标准不一样很正常。
#9
lib无法通用,dll还可以。
即使有C++11,编译boost asio还是要用到boost regex
即使有C++11,编译boost asio还是要用到boost regex
#10
就算是同一个VC版本,debug和release的,ansi和unicode的静态库都不能通用。要通用的话去做动态库去,只要用纯C做DLL接口,在别的语言里都可以用,更别谈不同VC版本了。
#11
就算是同一个VC版本,debug和release的,ansi和unicode的静态库都不能通用。要通用的话去做动态库去,只要用纯C做DLL接口,在别的语言里都可以用,更别谈不同VC版本了。
#12
嗯,明白了!我在VS2012上试下编出boost的DLL和lib然后在VS2015工程里引用这个DLL相关的,编译链接正常通过,但是运行出现异常!同样的工程放到VS2012编译运行结果是正常的。这又有何差异了?
就算是同一个VC版本,debug和release的,ansi和unicode的静态库都不能通用。要通用的话去做动态库去,只要用纯C做DLL接口,在别的语言里都可以用,更别谈不同VC版本了。
dll接口是纯C的可以随便用
但boost的dll不是纯C的接口无法通用。
#13
你可以在vs2015里面选择v120的工具平台
也就是说要用vs2012的编译器才行
也就是说要用vs2012的编译器才行
#14
嗯,明白了!我在VS2012上试下编出boost的DLL和lib然后在VS2015工程里引用这个DLL相关的,编译链接正常通过,但是运行出现异常!同样的工程放到VS2012编译运行结果是正常的。这又有何差异了?
就算是同一个VC版本,debug和release的,ansi和unicode的静态库都不能通用。要通用的话去做动态库去,只要用纯C做DLL接口,在别的语言里都可以用,更别谈不同VC版本了。
dll接口是纯C的可以随便用
但boost的dll不是纯C的接口无法通用。
#15
bjam toolset=msvc-11.0 variant=debug,release threading=multi link=static,,,注意这里的msvc=11.0表示与vs2012版本对应
#16
好像不对啊,我这边有个用VS20005编译出的codejock的XTP界面库的DLL和Lib,这个界面库是用C++写的,在VS2012引用这两个DLL和Lib完全没有问题出现啊。 嗯,明白了!我在VS2012上试下编出boost的DLL和lib然后在VS2015工程里引用这个DLL相关的,编译链接正常通过,但是运行出现异常!同样的工程放到VS2012编译运行结果是正常的。这又有何差异了?
就算是同一个VC版本,debug和release的,ansi和unicode的静态库都不能通用。要通用的话去做动态库去,只要用纯C做DLL接口,在别的语言里都可以用,更别谈不同VC版本了。
dll接口是纯C的可以随便用
但boost的dll不是纯C的接口无法通用。
表示怀疑,很常用的CString的实现都改了。。
#17
不通用。但是Boost中大部分库都不需要编译,你把Boost下载下来解压到一个目录里,VS2012和VS2015的项目中include一下它就行了,等需要用到必须编译的库时再编译