cl : 命令行 warning D9002:忽略未知选项“ /NODEFAULTLIB:library ”

前言

cl : 命令行 warning D9002:忽略未知选项“ /NODEFAULTLIB:library ”
在这里插入图片描述

原因

一下引用
連結器工具警告 LNK4098

执行运行时程序库现在包含指示词,以防止混合不同的类型。 如果您尝试在相同的程序中使用不同类型或 debug 和非 debug 版本的执行运行时程序库,您会收到这个警告。 例如,如果您编译了一个文档来使用一中执行运行时程序库,而另一个文本档使用另一个文档 (例如,debug 和 retail) ,而且尝试链接他们,您将会收到这个警告。 您应该将所有原始文档编译成使用相同的执行运行时程序库。 如需项目信息,请参阅 /md、/mt、/ld (使用 Run-Time 程序库) 编译器选项。

您可以使用連結器的 /verbose: LIB 參數,找出連結器所搜尋的程式庫。 例如,當您的可執行檔使用多執行緒、非偵錯工具執行時間程式庫時,報告的清單應該包含 LIBCMT.LIB,而不是 LIBCMTD.LIB .lib、MSVCRT.LIB .lib 或 MSVCRTD.LIB .lib。 您可以使用 /NODEFAULTLIB ,透過您想要忽略的每個程式庫,告訴連結器忽略不正確的執行時間程式庫。

下表根據您要使用的執行時間程式庫,顯示應忽略的程式庫。 在命令列上,為每個程式庫使用一個 /NODEFAULTLIB 選項來忽略。 在 Visual Studio IDE 中,請在 [忽略特定的預設程式庫] 屬性中,以分號分隔要忽略的程式庫。

資料表 1
使用這個執行時間程式庫 略過這些程式庫
多執行緒 (libcmt.lib .lib) msvcrt.lib .lib;libcmtd.lib .lib;msvcrtd.lib .lib
使用 DLL (msvcrt.lib) 的多執行緒 libcmt.lib .lib;libcmtd.lib .lib;msvcrtd.lib .lib
Debug 多執行緒 (libcmtd.lib .lib) libcmt.lib .lib;msvcrt.lib .lib;msvcrtd.lib .lib
使用 DLL (msvcrtd.lib) 的調試多執行緒 libcmt.lib .lib;msvcrt.lib .lib;libcmtd.lib .lib
例如,如果您收到這個警告,而且您想要建立一個可執行檔,而該檔案使用的是執行時間程式庫的非 debug DLL 版本,您可以使用下列選項搭配連結器:

cmd

複製
/NODEFAULTLIB:libcmt.lib /NODEFAULTLIB:libcmtd.lib /NODEFAULTLIB:msvcrtd.lib

解决:
在这里插入图片描述
输入:msvcrt.lib .lib;libcmtd.lib .lib;msvcrtd.lib .lib
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值