fender0107401 发表于 2016-05-15 08:57

库在链接的时候的问题。

本帖最后由 fender0107401 于 2016-05-15 08:57 编辑

Linux上面,一个库,比如说Qt,可是用来生成debug版本,也可以用来生产release版本,对吧?

不过在Windows上面好像就不行,debug版本必须链接的debug版的库上面,对吧?

语言是C++,C是不是也是这样。

hellioncu 发表于 2016-05-15 20:37

其实是没有这个限制的,接口一样,你说它是debug就是debug,你说它是release就是release

fender0107401 发表于 2016-05-16 08:24

回复 2# hellioncu

我记得有一次用VS,然后VS告诉我得链接到调试版的boost库上面,不知道是不是记错了。


   

流氓无产者 发表于 2016-05-16 09:26

fender0107401 发表于 2016-05-16 08:24 static/image/common/back.gif
回复 2# hellioncu

我记得有一次用VS,然后VS告诉我得链接到调试版的boost库上面,不知道是不是记错了。 ...
你说得对,大好人也说得对
估计是windows下debug有连接方面的参数或者格式,linux下不存在

hellioncu 发表于 2016-05-16 09:31

流氓无产者 发表于 2016-05-16 09:26 static/image/common/back.gif
你说得对,大好人也说得对
估计是windows下debug有连接方面的参数或者格式,linux下不存在

windows下自己写的库,debug/release混着链接可以成功的。那些不成功的,应该是debug/release接口上有一些不一样

流氓无产者 发表于 2016-05-16 09:32

hellioncu 发表于 2016-05-16 09:31 static/image/common/back.gif
windows下自己写的库,debug/release混着链接可以成功的。那些不成功的,应该是debug/release接口上有 ...
you are right,i am wrong
run different,but linux run ok

fender0107401 发表于 2016-05-16 10:34

原来是这样的。

trisisble 发表于 2016-05-16 11:11

本帖最后由 trisisble 于 2016-05-16 11:12 编辑

楼主,类似的问题你之前好像问过了吧?就那个“头文件库”的帖子,当时猫版windoze还狠狠吐槽了一下VS不同版本的ABI来着

就我个人的经验,用VS编译C++程序,Debug和Release能不能混用,关键在于运行库的编译选项吧,就是用的是/MTd /MT /MDd /MD这之中的哪一种了,我之前用过一个别人写的VS的二进制库,就是用的/MT选项,自己的代码工程在添加了之前的二进制库的情况下,不管选择Debug还是Release,都必须选择/MT才能链接成功的


fender0107401 发表于 2016-05-16 11:24

trisisble 发表于 2016-05-16 11:11 static/image/common/back.gif
楼主,类似的问题你之前好像问过了吧?就那个“头文件库”的帖子,当时猫版windoze还狠狠吐槽了一下VS不同版 ...

当时没有考虑debug和release的事情,刚刚在想这个。

爻易 发表于 2016-05-16 23:15

只关注一个目标,并尽可能把它做好。
:lol
页: [1]
查看完整版本: 库在链接的时候的问题。