bug系列(二)release版本DLL報錯,debug版本正常

一、鏈接錯誤

編譯成release版本時,提示
Linking...
nafxcw.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex
nafxcw.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex
Release/DisplayWavelet.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.

(debug使用了多線程庫,而release沒有設置)

選擇使用多線程庫 把/Mt改成/MD

 

二、 release版本socket通信中的inet_addr報錯

參考:https://blog.csdn.net/qq_36430466/article/details/81212041

問題出現的原因是:

在VS2013以後的版本中,增加了inet_pton()、InetPton()之類的新函數,用於IP地址在“點分十進制”和“二進制整數”之間轉換,並且能夠處理ipv4和ipv6。而inet_addr是老函數,高版本VS在編譯時默認使用了新函數,所以會報該錯誤。

問題的解決:

1、用所提示的新函數代替inet_addr函數。

2、修改VS配置,告訴它我就要舊函數,修改方法:項目->屬性->C/C++->常規->SDL檢查,將“是”改爲“否”,即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章