Xtra-Computing / thundersvm

ThunderSVM: A Fast SVM Library on GPUs and CPUs
Apache License 2.0
1.56k stars 216 forks source link

No thundersvm.dll appears on Windows [Question] #133

Closed ZJUguquan closed 5 years ago

ZJUguquan commented 5 years ago

Hi, first thanks to your excellent work on enhancing SVM.

I have read the build docs and follow your advice to build on Windows 8. It seems everything works well but I could not find the thundersvm.dll file. I don't know what's wrong.

My environment is:

And when I run the code below for compling,

$cmake .. -DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=TRUE -DBUILD_SHARED_LIBS=TRUE -G "Visual Studio 15 2017 Win64" -Tv140

Such logs was printed and no errors was thrown.

-- The C compiler identification is MSVC 19.0.24225.1
-- The CXX compiler identification is MSVC 19.0.24225.1
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/x86_amd64/cl.exe
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/x86_amd64/cl.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/x86_amd64/cl.exe
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/x86_amd64/cl.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Warning (dev) at C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.9/Modules/FindOpenMP.cmake:212 (if)
  Policy CMP0054 is not set: Only interpret if() arguments as variables or
  keywords when unquoted.  Run "cmake --help-policy CMP0054" for policy
  details.  Use the cmake_policy command to set the policy and suppress this
  warning.

  Quoted variables like "MSVC" will no longer be dereferenced when the policy
  is set to NEW.  Since the policy is not set the OLD behavior will be used.
Call Stack (most recent call first):
  C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.9/Modules/FindOpenMP.cmake:324 (_OPENMP_GET_FLAGS)
  CMakeLists.txt:30 (find_package)
This warning is for project developers.  Use -Wno-dev to suppress it.

Compile with CUDA
-- Configuring done
-- Generating done
-- Build files have been written to: E:/project/py-packages/thundersvm/build

However, there is no ./build/bin/Debug/thundersvm.dll file under the directory:

$ ls -l
total 239
-rw-r--r-- 1 GuQuan 197121 116438 Mar 29 16:59 ALL_BUILD.vcxproj
-rw-r--r-- 1 GuQuan 197121    306 Mar 29 16:59 ALL_BUILD.vcxproj.filters
-rw-r--r-- 1 GuQuan 197121  24121 Mar 29 16:59 CMakeCache.txt
drwxr-xr-x 1 GuQuan 197121      0 Mar 29 16:59 CMakeFiles/
-rw-r--r-- 1 GuQuan 197121  80621 Mar 29 16:59 ZERO_CHECK.vcxproj
-rw-r--r-- 1 GuQuan 197121    549 Mar 29 16:59 ZERO_CHECK.vcxproj.filters
-rw-r--r-- 1 GuQuan 197121   1692 Mar 29 16:59 cmake_install.cmake
-rw-r--r-- 1 GuQuan 197121    151 Mar 29 16:59 config.h
drwxr-xr-x 1 GuQuan 197121      0 Mar 29 16:59 src/
-rw-r--r-- 1 GuQuan 197121   5402 Mar 29 16:59 thundersvm.sln

I have tried compiling without GPU and run codes below, but the same situation appeared.

$cmake .. -DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=TRUE -DBUILD_SHARED_LIBS=TRUE -DUSE_CUDA=OFF -DUSE_EIGEN=ON -G "Visual Studio 15 2017 Win64" -Tv140

Any advice please...? Thanks !

QinbinLi commented 5 years ago

Please build the library first. After you use the cmake command, you can find "thundersvm.sln" file. You can open this file using Visual Studio and build the library inside it. Then you can see "thundersvm.dll" file. Thanks.