Какой флаг я передаю clang-cl, чтобы получить time.h, _CSTD, правильные wint_t и mbstate_t? - PullRequest
0 голосов
/ 06 января 2019

Я пытаюсь собрать большой пакет линейной алгебры Trilinos с помощью clang-cl. Я настраиваю это с

-DCMAKE_C_COMPILER:FILEPATH='C:/Program Files/LLVM/bin/clang-cl.exe' \
-DCMAKE_CXX_COMPILER:FILEPATH='C:/Program Files/LLVM/bin/clang-cl.exe' \
-DCMAKE_C_FLAGS:STRING='/DWIN32 /D_WINDOWS /W3 -fms-compatibility-version=19' \
-DCMAKE_CXX_FLAGS:STRING='/DWIN32 /D_WINDOWS /W3 /GR /EHsc /std:c++14 -fms-compatibility-version=19' \

Я получаю ошибки, показанные ниже. Нужно ли передать clang-cl некоторый флаг, чтобы иметь time.h в пути включения? Чтобы получить другие типы правильно?

Спасибо ..... Джон Кэри

D:\winsame\cary\vorpalall-llvm\builds\trilinos-12.12.1\cmake\tribits\win_interface\include\gettimeofday.c(1,10):  fatal error: ' time.h ' file not found^M
#include < time.h >^

C:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\shared\stralign.h(483,16):  error: use of undeclared identifier '_wcsicmp'; did you mean 'ua_wcsicmp'?^M
    return _wcsicmp( (LPCWSTR)String1, (LPCWSTR)String2 );^M
           ^^M
C:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\shared\stralign.h(477,1):  note: 'ua_wcsicmp' declared here^M
ua_wcsicmp(

C:\Program Files (x86)\Windows Kits\10\include\10.0.16299.0\ucrt\corecrt.h(483,39):  error: typedef redefinition with different types ('unsigned short' vs 'int')^M
typedef unsigned short                wint_t;^

C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.11.25503\include\cstdlib(23,16):  error: no member named 'fabsl' in the global namespace^M
    return (_CSTD fabsl(_Xx));^M

1 Ответ

0 голосов
/ 06 января 2019

Используйте Time.h вместо time.h в соответствии с https://docs.microsoft.com/en-us/cpp/c-runtime-library/daylight-dstbias-timezone-and-tzname?view=vs-2017.

...