kou opened a new issue, #44364: URL: https://github.com/apache/arrow/issues/44364
### Describe the enhancement requested It seems that we should not export template class. It works with MSVC but doesn't work with clang-cl. See also: https://github.com/apache/arrow/issues/44310#issuecomment-2396360335 ```text [53/72] Linking CXX shared library arrow_python.dll FAILED: arrow_python.dll arrow_python.lib C:\windows\system32\cmd.exe /C "cd . && "C:\Program Files\CMake\bin\cmake.exe" -E vs_link_dll --intdir=CMakeFiles\arrow_python.dir --rc=C:\PROGRA~2\WI3CF2~1\10\bin\100226~1.0\arm64\rc.exe --mt=C:\PROGRA~2\WI3CF2~1\10\bin\100226~1.0\arm64\mt.exe --manifests -- C:\PROGRA~1\LLVM\bin\lld-link.exe /nologo CMakeFiles\arrow_python.dir\pyarrow\src\arrow\python\arrow_to_pandas.cc.obj CMakeFiles\arrow_python.dir\pyarrow\src\arrow\python\benchmark.cc.obj CMakeFiles\arrow_python.dir\pyarrow\src\arrow\python\common.cc.obj CMakeFiles\arrow_python.dir\pyarrow\src\arrow\python\datetime.cc.obj CMakeFiles\arrow_python.dir\pyarrow\src\arrow\python\decimal.cc.obj CMakeFiles\arrow_python.dir\pyarrow\src\arrow\python\deserialize.cc.obj CMakeFiles\arrow_python.dir\pyarrow\src\arrow\python\extension_type.cc.obj CMakeFiles\arrow_python.dir\pyarrow\src\arrow\python\gdb.cc.obj CMakeFiles\arrow_python.dir\pyarrow\src\arrow\python\helpers.cc.obj CMakeFiles\arrow_python.dir\pyarrow\src\arrow\python\inference. cc.obj CMakeFiles\arrow_python.dir\pyarrow\src\arrow\python\io.cc.obj CMakeFiles\arrow_python.dir\pyarrow\src\arrow\python\ipc.cc.obj CMakeFiles\arrow_python.dir\pyarrow\src\arrow\python\numpy_convert.cc.obj CMakeFiles\arrow_python.dir\pyarrow\src\arrow\python\numpy_init.cc.obj CMakeFiles\arrow_python.dir\pyarrow\src\arrow\python\numpy_to_arrow.cc.obj CMakeFiles\arrow_python.dir\pyarrow\src\arrow\python\python_test.cc.obj CMakeFiles\arrow_python.dir\pyarrow\src\arrow\python\python_to_arrow.cc.obj CMakeFiles\arrow_python.dir\pyarrow\src\arrow\python\pyarrow.cc.obj CMakeFiles\arrow_python.dir\pyarrow\src\arrow\python\serialize.cc.obj CMakeFiles\arrow_python.dir\pyarrow\src\arrow\python\udf.cc.obj CMakeFiles\arrow_python.dir\pyarrow\src\arrow\python\csv.cc.obj CMakeFiles\arrow_python.dir\pyarrow\src\arrow\python\filesystem.cc.obj /out:arrow_python.dll /implib:arrow_python.lib /pdb:arrow_python.pdb /dll /version:0.0 /machine:ARM64 /NODEFAULTLIB:LIBCMT /INCREMENTAL:NO C:\source\arrow\ Install\lib\arrow_dataset.lib C:\source\arrow\Install\lib\arrow_acero.lib C:\source\arrow\Install\lib\parquet.lib C:\source\arrow\Install\lib\arrow.lib ws2_32.lib C:\Programs\Python\Python312-arm64\libs\python312.lib kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib && cd ." LINK: command "C:\PROGRA~1\LLVM\bin\lld-link.exe /nologo CMakeFiles\arrow_python.dir\pyarrow\src\arrow\python\arrow_to_pandas.cc.obj CMakeFiles\arrow_python.dir\pyarrow\src\arrow\python\benchmark.cc.obj CMakeFiles\arrow_python.dir\pyarrow\src\arrow\python\common.cc.obj CMakeFiles\arrow_python.dir\pyarrow\src\arrow\python\datetime.cc.obj CMakeFiles\arrow_python.dir\pyarrow\src\arrow\python\decimal.cc.obj CMakeFiles\arrow_python.dir\pyarrow\src\arrow\python\deserialize.cc.obj CMakeFiles\arrow_python.dir\pyarrow\src\arrow\python\extension_type.cc.obj CMakeFiles\arrow_python.dir\pyarrow\src\arrow\python\gdb.cc.obj CMakeFiles\arrow_python.dir\pyarrow\src\arrow\python\helpers.cc.obj CMakeFiles\arrow_python.dir\pyarrow\src\arrow\python\inference.cc.obj CMakeFiles\arrow_python.dir\pyarrow\src\arrow\python\io.cc.obj CMakeFiles\arrow_python.dir\pyarrow\src\arrow\python\ipc.cc.obj CMakeFiles\arrow_python.dir\pyarrow\src\arrow\python\numpy_convert.cc.obj CMakeFiles\arrow_python.dir\pyarrow\sr c\arrow\python\numpy_init.cc.obj CMakeFiles\arrow_python.dir\pyarrow\src\arrow\python\numpy_to_arrow.cc.obj CMakeFiles\arrow_python.dir\pyarrow\src\arrow\python\python_test.cc.obj CMakeFiles\arrow_python.dir\pyarrow\src\arrow\python\python_to_arrow.cc.obj CMakeFiles\arrow_python.dir\pyarrow\src\arrow\python\pyarrow.cc.obj CMakeFiles\arrow_python.dir\pyarrow\src\arrow\python\serialize.cc.obj CMakeFiles\arrow_python.dir\pyarrow\src\arrow\python\udf.cc.obj CMakeFiles\arrow_python.dir\pyarrow\src\arrow\python\csv.cc.obj CMakeFiles\arrow_python.dir\pyarrow\src\arrow\python\filesystem.cc.obj /out:arrow_python.dll /implib:arrow_python.lib /pdb:arrow_python.pdb /dll /version:0.0 /machine:ARM64 /NODEFAULTLIB:LIBCMT /INCREMENTAL:NO C:\source\arrow\Install\lib\arrow_dataset.lib C:\source\arrow\Install\lib\arrow_acero.lib C:\source\arrow\Install\lib\parquet.lib C:\source\arrow\Install\lib\arrow.lib ws2_32.lib C:\Programs\Python\Python312-arm64\libs\python312.lib kernel32.lib user32.lib gdi32.li b winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib /MANIFEST:EMBED,ID=2" failed (exit code 1) with the following output: lld-link: error: undefined symbol: __declspec(dllimport) public: __cdecl arrow::TimeScalar<class arrow::Time32Type>::TimeScalar<class arrow::Time32Type>(int, enum arrow::TimeUnit::type) >>> referenced by CMakeFiles\arrow_python.dir\pyarrow\src\arrow\python\gdb.cc.obj:(void __cdecl arrow::gdb::TestSession(void)) >>> referenced by CMakeFiles\arrow_python.dir\pyarrow\src\arrow\python\gdb.cc.obj:(void __cdecl arrow::gdb::TestSession(void)) lld-link: error: undefined symbol: __declspec(dllimport) public: __cdecl arrow::TimeScalar<class arrow::Time64Type>::TimeScalar<class arrow::Time64Type>(__int64, enum arrow::TimeUnit::type) >>> referenced by CMakeFiles\arrow_python.dir\pyarrow\src\arrow\python\gdb.cc.obj:(void __cdecl arrow::gdb::TestSession(void)) >>> referenced by CMakeFiles\arrow_python.dir\pyarrow\src\arrow\python\gdb.cc.obj:(void __cdecl arrow::gdb::TestSession(void)) ``` ### Component(s) C++ -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@arrow.apache.org.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org