Search code examples
c++windows-10filesystemsicc

C++17, Intel C++ compiler: what is the library needed to use filesystem header in windows 10 platform?


I just need to do some filesystem operation using #include <filesystem>, however, I get the below link error ... I guess I am missing a library in the xlink command. Below is the error message.

Please let me know your valuable comments.

test_accuracy.obj : error LNK2019: unresolved external symbol wmemcmp referenced in function "public: class std::filesystem::path & __cdecl std::filesystem::path::operator/=(class std::filesystem::path const &)" (??_0path@filesystem@std@@QEAAAEAV012@AEBV012@@Z)
Debug\test_accuracy.exe : fatal error LNK1120: 1 unresolved externals

Edit

Below you can see the compile and link commands. (thx)

icl -I"C:/Program Files (x86)/IntelSWTools/sw_dev_tools/compilers_and_libraries_2020.2.254/windows/compiler/include"  -I/../boost_1_73_0 -Qstd=c++17   -Qdiag-error-limit:3                -O3 -MD -Fo:DEBUG/obj/test_accuracy.obj -c test_accuracy.cpp


xilink /OPT:REF /OPT:ICF /DEBUG:FASTLINK /TLBID:1 ole32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib -LIBPATH:Debug\lib   -out:Debug/test_accuracy.exe DEBUG/obj/test_accuracy.obj  

Solution

  • I raised the problem with Intel C++ Community here and it turns out to be a reproducible issue, and they suggested to update my VS 2019 Community Edition. I updated to 16.8.5 and it worked. So may be it is probably the right solution. (at least worked for me.)