为什么有时编译选项要改成多线程才能编译通过,而 单线程就不行呢?
或者增加 /FORCE:MULTIPLE 编译选项也行?
请问编译选项要改成多线程后生成的EXE文件与增加 /FORCE:MULTIPLE 后生成的EXE文件有什么不同
为什么有时编译选项要改成多线程才能编译通过,而 单线程就不行呢?
答案:3 悬赏:0 手机版
解决时间 2021-12-28 20:46
- 提问者网友:凉末
- 2021-12-28 02:29
最佳答案
- 五星知识达人网友:青尢
- 2021-12-28 03:20
主要是libc(C函数)库不同,有时链接时会看到libcd.lib/libc.lib/libcmt.lib...这些东东,就是针对不同的线程环境所使用的。不过在VS2005之后,不再使用单线程库了,它只使用libc*mt.lib,也就是有很多老程序代码在VS2005下找不到LIBCD.lib的原因。
如果你在程序中使用了_beginthread之类的函数,那么就会链接到多线程的c函数库,单线程选项当然不能使用了。
而使用FORCE:MUTIPLE和这个没有多大关系,它可能在同时使用了单线程库和多线程库时起到了忽略多个重叠符号错误的作用。
如果你在程序中使用了_beginthread之类的函数,那么就会链接到多线程的c函数库,单线程选项当然不能使用了。
而使用FORCE:MUTIPLE和这个没有多大关系,它可能在同时使用了单线程库和多线程库时起到了忽略多个重叠符号错误的作用。
全部回答
- 1楼网友:酒醒三更
- 2021-12-28 03:41
SORRY
再看看别人怎么说的。
- 2楼网友:英雄的欲望
- 2021-12-28 03:36
因为你所使用的某个静态库是使用多线程设置编译的
一个应用程序里所有的项目的线程设置要一致
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯