Taichi: Clang build on Windows

Created on 12 Feb 2020  路  17Comments  路  Source: taichi-dev/taichi

Some people prefer to use Clang instead of MSVC on Windows. Let's add support for this.

feature request

All 17 comments

I'm getting warnings like

In file included from C:\Users\xmk\Desktop\taichi\taichi\backends\base.cpp:3:
In file included from C:\Users\xmk\Desktop\taichi\taichi\backends/base.h:4:
In file included from C:\Users\xmk\Desktop\taichi\taichi\backends/../tlang_util.h:4:
In file included from C:/Users/xmk/Desktop/taichi\taichi/arch.h:4:
C:/Users/xmk/Desktop/taichi\taichi/common/util.h:116:9: warning: unknown pragma ignored [-Wunknown-pragmas]
#pragma warning(push)

and one error:

In file included from C:\Users\xmk\Desktop\taichi\taichi\backends\base.cpp:3:
In file included from C:\Users\xmk\Desktop\taichi\taichi\backends/base.h:4:
In file included from C:\Users\xmk\Desktop\taichi\taichi\backends/../tlang_util.h:6:
In file included from C:/Users/xmk/Desktop/taichi\taichi/io/io.h:15:
In file included from D:\Program Files\msys2\mingw64\include\c++\9.2.0\experimental/filesystem:37:
D:\Program Files\msys2\mingw64\include\c++\9.2.0\experimental/bits/fs_path.h:590:31: error: invalid use of incomplete type 'std::experimental::filesystem::v1::__cxx11::filesystem_error'
      _GLIBCXX_THROW_OR_ABORT(filesystem_error(
                              ^~~~~~~~~~~~~~~~~
D:\Program Files\msys2\mingw64\include\c++\9.2.0\x86_64-w64-mingw32\bits/c++config.h:177:49: note: expanded from macro '_GLIBCXX_THROW_OR_ABORT'
#  define _GLIBCXX_THROW_OR_ABORT(_EXC) (throw (_EXC))
                                                ^~~~
D:\Program Files\msys2\mingw64\include\c++\9.2.0\experimental/bits/fs_fwd.h:68:9: note: forward declaration of 'std::experimental::filesystem::v1::__cxx11::filesystem_error'
  class filesystem_error;
        ^
In file included from C:\Users\xmk\Desktop\taichi\taichi\backends\codegen_cuda.cpp:3:
In file included from C:\Users\xmk\Desktop\taichi\taichi\backends/codegen_cuda.h:5:
In file included from C:\Users\xmk\Desktop\taichi\taichi\backends/kernel.h:5:
In file included from C:\Users\xmk\Desktop\taichi\taichi\backends/base.h:4:
In file included from C:\Users\xmk\Desktop\taichi\taichi\backends/../tlang_util.h:6:
In file included from C:/Users/xmk/Desktop/taichi\taichi/io/io.h:15:
In file included from D:\Program Files\msys2\mingw64\include\c++\9.2.0\experimental/filesystem:37:
D:\Program Files\msys2\mingw64\include\c++\9.2.0\experimental/bits/fs_path.h:590:31: error: invalid use of incomplete type 'std::experimental::filesystem::v1::__cxx11::filesystem_error'
      _GLIBCXX_THROW_OR_ABORT(filesystem_error(
                              ^~~~~~~~~~~~~~~~~
D:\Program Files\msys2\mingw64\include\c++\9.2.0\x86_64-w64-mingw32\bits/c++config.h:177:49: note: expanded from macro '_GLIBCXX_THROW_OR_ABORT'
#  define _GLIBCXX_THROW_OR_ABORT(_EXC) (throw (_EXC))
                                                ^~~~
D:\Program Files\msys2\mingw64\include\c++\9.2.0\experimental/bits/fs_fwd.h:68:9: note: forward declaration of 'std::experimental::filesystem::v1::__cxx11::filesystem_error'
  class filesystem_error;
        ^

How can I resolve them?

Please ignore the warning for now.

How about removing experimental in experimental/filesystem and experimental::filesystem? Since C++17 std::filesystem is no longer experimental.

Same error.
BTW, I tried this simple program and my clang++ can compile it:

#include <filesystem>
int main()
{
}

Google tells me this: https://stackoverflow.com/questions/57963460/clang-refuses-to-compile-libstdcs-filesystem-header

Maybe you are using gcc (headers) instead of clang? It seems to me that the headers are gcc headers. You might also need to check your stdc++ settings in your CMake.

Oh, I'm using gcc headers. Trying to fix it.

UPD: I'm using libstdc++ headers. It works by manually applying the patch described in the above link.

Now I'm getting a new error:

C:\Users\xmk\Desktop\taichi\taichi\backends\codegen_llvm_ptx.cpp:236:51: error: no member named 'nvvm_atomic_load_add_f32' in namespace 'llvm::Intrinsic'
              builder->CreateIntrinsic(Intrinsic::nvvm_atomic_load_add_f32,
                                       ~~~~~~~~~~~^
C:\Users\xmk\Desktop\taichi\taichi\backends\codegen_llvm_ptx.cpp:242:51: error: no member named 'nvvm_atomic_load_add_f64' in namespace 'llvm::Intrinsic'
              builder->CreateIntrinsic(Intrinsic::nvvm_atomic_load_add_f64,
                                       ~~~~~~~~~~~^

Did you compile LLVM 8.0.1 with the NVPTX target?

I'm now running mingw32-make after running

cmake ..\llvm-8.0.1.src -DLLVM_ENABLE_RTTI:BOOL=ON -DBUILD_SHARED_LIBS:BOOL=OFF -DCMAKE_BUILD_TYPE=Release -DLLVM_TARGETS_TO_BUILD="X86;NVPTX" -DLLVM_ENABLE_ASSERTIONS=ON -DLLVM_BUILD_TESTS:BOOL=OFF -DCMAKE_INSTALL_PREFIX=installed -G "CodeBlocks - MinGW Makefiles"

Now I use LLVM 8.0 as the one in https://github.com/taichi-dev/taichi/blob/master/cmake/TaichiCore.cmake#L57 instead of the 9.0 one I previously used. Now I get these errors:

C:\Users\xmk\Desktop\taichi\taichi\gui\win32.cpp:18:8: warning: unused variable 'dc' [-Wunused-variable]
  auto dc = GetDC(hwnd);
       ^
C:\Users\xmk\Desktop\taichi\taichi\gui\win32.cpp:68:22: error: assigning to 'LPCSTR' (aka 'const char *') from incompatible type 'const wchar_t *'
  wc.lpszClassName = CLASS_NAME;
                     ^~~~~~~~~~
C:\Users\xmk\Desktop\taichi\taichi\gui\win32.cpp:72:10: error: no matching function for call to 'CreateWindowExA'
  hwnd = CreateWindowEx(0,           // Optional window styles.
         ^~~~~~~~~~~~~~
D:\Program Files\msys2\mingw64\x86_64-w64-mingw32\include\winuser.h:2134:24: note: expanded from macro 'CreateWindowEx'
#define CreateWindowEx __MINGW_NAME_AW(CreateWindowEx)
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:\Program Files\msys2\mingw64\x86_64-w64-mingw32\include\_mingw_unicode.h:20:32: note: expanded from macro '__MINGW_NAME_AW'
# define __MINGW_NAME_AW(func) func##A
                               ^~~~~~~
<scratch space>:15:1: note: expanded from here
CreateWindowExA
^~~~~~~~~~~~~~~
D:\Program Files\msys2\mingw64\x86_64-w64-mingw32\include\winuser.h:2137:26: note: candidate function not viable: no known conversion from 'const wchar_t *' to 'LPCSTR' (aka 'const char *') for 2nd argument
  WINUSERAPI HWND WINAPI CreateWindowExA(DWORD dwExStyle,LPCSTR lpClassName,LPCSTR lpWindowName,DWORD dwStyle,int X,int Y,int nWidth,int nHeight,HWND hWndParent,HMENU hMenu,HINSTANCE hInstance,LPVOID lpParam);
                         ^
C:\Users\xmk\Desktop\taichi\taichi\gui\win32.cpp:116:3: error: no matching function for call to 'SetWindowTextA'
  SetWindowText(hwnd, std::wstring(title.begin(), title.end()).data());
  ^~~~~~~~~~~~~
D:\Program Files\msys2\mingw64\x86_64-w64-mingw32\include\winuser.h:3477:23: note: expanded from macro 'SetWindowText'
#define SetWindowText __MINGW_NAME_AW(SetWindowText)
                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:\Program Files\msys2\mingw64\x86_64-w64-mingw32\include\_mingw_unicode.h:20:32: note: expanded from macro '__MINGW_NAME_AW'
# define __MINGW_NAME_AW(func) func##A
                               ^~~~~~~
<scratch space>:27:1: note: expanded from here
SetWindowTextA
^~~~~~~~~~~~~~
D:\Program Files\msys2\mingw64\x86_64-w64-mingw32\include\winuser.h:3491:29: note: candidate function not viable: no known conversion from 'wchar_t *' to 'LPCSTR' (aka 'const char *') for 2nd argument
  WINUSERAPI WINBOOL WINAPI SetWindowTextA(HWND hWnd,LPCSTR lpString);
                            ^
C:/Users/xmk/Desktop/taichi\taichi/common/util.h:119:9: warning: unknown pragma ignored [-Wunknown-pragmas]
#pragma warning(pop)
        ^

After changing these std::wstring to std::string, I got thousands of linker errors as follows:

_EJNS_4nameENS_9is_methodENS_7siblingENS_11is_operatorEEEEPFT_DpT0_EDpRKT1_]+0xad): undefined reference to `__imp__Py_RefTotal'
D:\Program Files\msys2\mingw64\bin\ld: CMakeFiles\taichi_core.dir/objects.a(export_math.cpp.obj):export_math.cpp:(.text$_ZN8pybind1112cpp_functionC2IN6taichi8VectorNDILi4EiLNS2_10InstSetExtE0EEEJRKS5_S7_EJNS_4nameENS_9is_methodENS_7siblingENS_11is_operatorEEEEPFT_DpT0_EDpRKT1_[_ZN8pybind1112cpp_functionC2IN6taichi8VectorNDILi4EiLNS2_10InstSetExtE0EEEJRKS5_S7_EJNS_4nameENS_9is_methodENS_7siblingENS_11is_operatorEEEEPFT_DpT0_EDpRKT1_]+0xe2): undefined reference to `__imp__Py_NegativeRefcount'
D:\Program Files\msys2\mingw64\bin\ld: CMakeFiles\taichi_core.dir/objects.a(export_math.cpp.obj):export_math.cpp:(.text$_ZN8pybind116class_IN6taichi8VectorNDILi4EiLNS1_10InstSetExtE0EEEJNS1_12VectorNDBaseILi4EiLS3_0EEEEE3defIPFRS4_S9_RKS4_EJNS_11is_operatorEEEERS7_PKcOT_DpRKT0_[_ZN8pybind116class_IN6taichi8VectorNDILi4EiLNS1_10InstSetExtE0EEEJNS1_12VectorNDBaseILi4EiLS3_0EEEEE3defIPFRS4_S9_RKS4_EJNS_11is_operatorEEEERS7_PKcOT_DpRKT0_]+0x26): undefined reference to `__imp__Py_RefTotal'
D:\Program Files\msys2\mingw64\bin\ld: CMakeFiles\taichi_core.dir/objects.a(export_math.cpp.obj):export_math.cpp:(.text$_ZN8pybind116class_IN6taichi8VectorNDILi4EiLNS1_10InstSetExtE0EEEJNS1_12VectorNDBaseILi4EiLS3_0EEEEE3defIPFRS4_S9_RKS4_EJNS_11is_operatorEEEERS7_PKcOT_DpRKT0_[_ZN8pybind116class_IN6taichi8VectorNDILi4EiLNS1_10InstSetExtE0EEEJNS1_12VectorNDBaseILi4EiLS3_0EEEEE3defIPFRS4_S9_RKS4_EJNS_11is_operatorEEEERS7_PKcOT_DpRKT0_]+0xb1): undefined reference to `__imp__Py_NegativeRefcount'
D:\Program Files\msys2\mingw64\bin\ld: CMakeFiles\taichi_core.dir/objects.a(export_math.cpp.obj):export_math.cpp:(.text$_ZN8pybind116class_IN6taichi8VectorNDILi4EiLNS1_10InstSetExtE0EEEJNS1_12VectorNDBaseILi4EiLS3_0EEEEE3defIPFRS4_S9_RKS4_EJNS_11is_operatorEEEERS7_PKcOT_DpRKT0_[_ZN8pybind116class_IN6taichi8VectorNDILi4EiLNS1_10InstSetExtE0EEEJNS1_12VectorNDBaseILi4EiLS3_0EEEEE3defIPFRS4_S9_RKS4_EJNS_11is_operatorEEEERS7_PKcOT_DpRKT0_]+0xef): undefined reference to `__imp__Py_NegativeRefcount'
D:\Program Files\msys2\mingw64\bin\ld: CMakeFiles\taichi_core.dir/objects.a(export_math.cpp.obj):export_math.cpp:(.text$_ZN8pybind116class_IN6taichi8VectorNDILi4EiLNS1_10InstSetExtE0EEEJNS1_12VectorNDBaseILi4EiLS3_0EEEEE3defIPFRS4_S9_RKS4_EJNS_11is_operatorEEEERS7_PKcOT_DpRKT0_[_ZN8pybind116class_IN6taichi8VectorNDILi4EiLNS1_10InstSetExtE0EEEJNS1_12VectorNDBaseILi4EiLS3_0EEEEE3defIPFRS4_S9_RKS4_EJNS_11is_operatorEEEERS7_PKcOT_DpRKT0_]+0x185): undefined reference to `__imp__Py_NegativeRefcount'
D:\Program Files\msys2\mingw64\bin\ld: CMakeFiles\taichi_core.dir/objects.a(export_math.cpp.obj):export_math.cpp:(.text$_ZN8pybind116class_IN6taichi8VectorNDILi4EiLNS1_10InstSetExtE0EEEJNS1_12VectorNDBaseILi4EiLS3_0EEEEE3defIPFRS4_S9_RKS4_EJNS_11is_operatorEEEERS7_PKcOT_DpRKT0_[_ZN8pybind116class_IN6taichi8VectorNDILi4EiLNS1_10InstSetExtE0EEEJNS1_12VectorNDBaseILi4EiLS3_0EEEEE3defIPFRS4_S9_RKS4_EJNS_11is_operatorEEEERS7_PKcOT_DpRKT0_]+0x1b9): undefined reference to `__imp__Py_NegativeRefcount'
D:\Program Files\msys2\mingw64\bin\ld: CMakeFiles\taichi_core.dir/objects.a(export_math.cpp.obj):export_math.cpp:(.text$_ZN8pybind116class_IN6taichi8VectorNDILi4EiLNS1_10InstSetExtE0EEEJNS1_12VectorNDBaseILi4EiLS3_0EEEEE3defIPFRS4_S9_RKS4_EJNS_11is_operatorEEEERS7_PKcOT_DpRKT0_[_ZN8pybind116class_IN6taichi8VectorNDILi4EiLNS1_10InstSetExtE0EEEJNS1_12VectorNDBaseILi4EiLS3_0EEEEE3defIPFRS4_S9_RKS4_EJNS_11is_operatorEEEERS7_PKcOT_DpRKT0_]+0x28e): undefined reference to `__imp__Py_NegativeRefcount'
D:\Program Files\msys2\mingw64\bin\ld: CMakeFiles\taichi_core.dir/objects.a(export_math.cpp.obj):export_math.cpp:(.text$_ZN8pybind116class_IN6taichi8VectorNDILi4EiLNS1_10InstSetExtE0EEEJNS1_12VectorNDBaseILi4EiLS3_0EEEEE3defIPFRS4_S9_RKS4_EJNS_11is_operatorEEEERS7_PKcOT_DpRKT0_[_ZN8pybind116class_IN6taichi8VectorNDILi4EiLNS1_10InstSetExtE0EEEJNS1_12VectorNDBaseILi4EiLS3_0EEEEE3defIPFRS4_S9_RKS4_EJNS_11is_operatorEEEERS7_PKcOT_DpRKT0_]+0x2e7): more undefined references to `__imp__Py_NegativeRefcount' follow
D:\Program Files\msys2\mingw64\bin\ld: CMakeFiles\taichi_core.dir/objects.a(export_math.cpp.obj):export_math.cpp:(.text$_ZN8pybind1112cpp_functionC2IRN6taichi8VectorNDILi4EiLNS2_10InstSetExtE0EEEJS6_RKS5_EJNS_4nameENS_9is_methodENS_7siblingENS_11is_operatorEEEEPFT_DpT0_EDpRKT1_[_ZN8pybind1112cpp_functionC2IRN6taichi8VectorNDILi4EiLNS2_10InstSetExtE0EEEJS6_RKS5_EJNS_4nameENS_9is_methodENS_7siblingENS_11is_operatorEEEEPFT_DpT0_EDpRKT1_]+0xad): undefined reference to `__imp__Py_RefTotal'
...
D:\Program Files\msys2\mingw64\bin\ld: CMakeFiles\taichi_core.dir/objects.a(memory.cpp.obj):memory.cpp:(.text$_ZN8pybind116detail9load_typeIyvEERNS0_11type_casterIT_T0_EES6_RKNS_6handleE[_ZN8pybind116detail9load_typeIyvEERNS0_11type_casterIT_T0_EES6_RKNS_6handleE]+0x4f0): undefined reference to `__imp__Py_RefTotal'
D:\Program Files\msys2\mingw64\bin\ld: CMakeFiles\taichi_core.dir/objects.a(memory.cpp.obj):memory.cpp:(.text$_ZN8pybind116detail9load_typeIyvEERNS0_11type_casterIT_T0_EES6_RKNS_6handleE[_ZN8pybind116detail9load_typeIyvEERNS0_11type_casterIT_T0_EES6_RKNS_6handleE]+0x525): undefined reference to `__imp__Py_NegativeRefcount'
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
mingw32-make.exe[3]: *** [CMakeFiles\taichi_core.dir\build.make:1582: ../runtimes/libtaichi_core.dll] Error 1
mingw32-make.exe[2]: *** [CMakeFiles\Makefile2:78: CMakeFiles/taichi_core.dir/all] Error 2
mingw32-make.exe[1]: *** [CMakeFiles\Makefile2:85: CMakeFiles/taichi_core.dir/rule] Error 2
mingw32-make.exe: *** [Makefile:117: taichi_core] Error 2

However, when I try to reproduce the errors, it just gives me

====================[ Build | taichi_core | Release-MinGW-clang ]===============
"D:\Program Files\JetBrains\CLion 2019.3\bin\cmake\win\bin\cmake.exe" --build C:\Users\xmk\Desktop\taichi\cmake-build-release-mingw-clang --target taichi_core -- -j 4
[100%] Built target taichi_core

Build finished

Now I only have a libtaichi_core.dll of 0 bytes in C:\Users\xmk\Desktop\taichi\runtimes\, while
C:\Users\xmk\Desktop\taichi\cmake-build-release-mingw-clang contains a file named libtaichi_core.dll.a which is 23.7 KB. python -m taichi test still gives me the assertion error at https://github.com/taichi-dev/taichi/blob/master/python/taichi/core/util.py#L221.

The missing symbols are likely from the Python library (such as libpython3.6.a on Linux, maybe something like python3.lib/python3.dll on Windows). Please make sure you are linking against these libraries.

Now it gives me the following errors:

[100%] Linking CXX shared library ..\runtimes\libtaichi_core.dll
D:/LLVM/build/lib/libLLVMCore.a(Value.cpp.obj): duplicate section `.rdata$_ZTSN4llvm15ValueHandleBaseE[_ZTSN4llvm15ValueHandleBaseE]' has different size
D:/LLVM/build/lib/libLLVMCore.a(Value.cpp.obj): duplicate section `.rdata$_ZTSN4llvm10CallbackVHE[_ZTSN4llvm10CallbackVHE]' has different size
D:/LLVM/build/lib/libLLVMCore.a(Value.cpp.obj): duplicate section `.rdata$_ZTIN4llvm10CallbackVHE[_ZTIN4llvm10CallbackVHE]' has different size
D:/LLVM/build/lib/libLLVMCore.a(DiagnosticHandler.cpp.obj): duplicate section `.rdata$_ZTSSt11_Mutex_baseILN9__gnu_cxx12_Lock_policyE2EE[_ZTSSt11_Mutex_baseILN9__gnu_cxx12_Lock_policyE2EE]' has different size
D:/LLVM/build/lib/libLLVMCore.a(DiagnosticHandler.cpp.obj): duplicate section `.rdata$_ZTSSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE[_ZTSSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE]' has different size
D:/LLVM/build/lib/libLLVMCore.a(DiagnosticHandler.cpp.obj): duplicate section `.rdata$_ZTISt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE[_ZTISt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE]' has different size
D:/LLVM/build/lib/libLLVMCore.a(DiagnosticHandler.cpp.obj): duplicate section `.rdata$_ZTSSt19_Sp_make_shared_tag[_ZTSSt19_Sp_make_shared_tag]' has different size
...
D:\Program Files\msys2\mingw64\bin\ld: CMakeFiles\taichi_core.dir/objects.a(export_math.cpp.obj):export_math.cpp:(.text+0x7f9): undefined reference to `_Py_NegativeRefcount'
D:\Program Files\msys2\mingw64\bin\ld: CMakeFiles\taichi_core.dir/objects.a(export_math.cpp.obj):export_math.cpp:(.text+0x956): more undefined references to `_Py_NegativeRefcount' follow
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
mingw32-make.exe[3]: *** [CMakeFiles\taichi_core.dir\build.make:1582: ../runtimes/libtaichi_core.dll] Error 1
mingw32-make.exe[2]: *** [CMakeFiles\Makefile2:78: CMakeFiles/taichi_core.dir/all] Error 2
mingw32-make.exe[1]: *** [CMakeFiles\Makefile2:85: CMakeFiles/taichi_core.dir/rule] Error 2
mingw32-make.exe: *** [Makefile:117: taichi_core] Error 2

Most of the errors are "duplicate section has different size", but there are also some "undefined references to `_Py_NegativeRefcount'".

I notice that I'm using python 3.7, and change https://github.com/taichi-dev/taichi/blob/master/cmake/PythonNumpyPybind11.cmake#L45 to python37 doesn't work. I can create a conda venv with python 3.6 but I don't know if it is necessary.

Another thing that may cause "duplicate section has different size" errors is that I'm using clang 9.0 but LLVM 8.0.1. If this is the real cause, I actually don't know how to install clang 8.0+mingw, as it seems that pacman only offers the latest version.

Cool, it seems that you are making progress :-)

I notice that I'm using python 3.7, and change https://github.com/taichi-dev/taichi/blob/master/cmake/PythonNumpyPybind11.cmake#L45 to python37 doesn't work. I can create a conda venv with python 3.6 but I don't know if it is necessary.

Python 3.7 should work. No need to switch to Python 3.6

Another thing that may cause "duplicate section has different size" errors is that I'm using clang 9.0 but LLVM 8.0.1. If this is the real cause, I actually don't know how to install clang 8.0+mingw, as it seems that pacman only offers the latest version.

One possibility is that LLVM and taichi are not compiled with the same march. E.g. https://stackoverflow.com/a/29736626

Neither removing -march=nehalem at https://github.com/taichi-dev/taichi/blob/master/cmake/TaichiCXXFlags.cmake#L39 when compiling taichi nor adding -fno-tree-vectorize works.

Maybe I should compile LLVM again with -march=nehalem? Compiling (cmake+make) it may take 1h.

Maybe I should compile LLVM again with -march=nehalem? Compiling (cmake+make) it may take 1h.

That's worth trying. (Don't get frustrated by the compilation/linking errors - they are basic programming skills if you are doing any research related to systems, so it's good to familiarize yourself with these issues... :-)

Still doesn't work.

UPD: Still doesn't work even if CMAKE_CXX_FLAGS is set exactly the same in both CMakeLists.txt's of LLVM and taichi (notice that LLVM was compiled with -std=gnu++11 but I changed it to -std=c++17 now):

set(CMAKE_CXX_FLAGS "-DTC_ISE_NONE -D_hypot=hypot -DMS_WIN64 -static -static-libgcc -static-libstdc++ -DPy_BUILD_CORE_BUILTIN=1 -I D:\\Anaconda3\\envs\\taichi\\include -std=c++17 -fsized-deallocation -Wall  -march=nehalem -DTI_ARCH_x86_64 -DTC_PASS_EXCEPTION_TO_PYTHON -DTC_INCLUDED -femulated-tls -Wa,-mbig-obj -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wno-comment -Wstring-conversion")

Maybe related to https://github.com/msys2/MINGW-packages/issues/3904 or https://intellij-support.jetbrains.com/hc/en-us/community/posts/360006860479-PROBLEM-when-using-clion-on-windows, which seems without a solution?

Fine. Let's stick to MSVC for now then. You will get your CSAIL account soon anyway.

This turns out to be too hard. Giving up and we should just stick to MSVC on Windows.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

zdxpan picture zdxpan  路  3Comments

yuanming-hu picture yuanming-hu  路  4Comments

jackalcooper picture jackalcooper  路  4Comments

liaopeiyuan picture liaopeiyuan  路  3Comments

Xayahp picture Xayahp  路  3Comments