ceccocats / tkDNN

Deep neural network library and toolkit to do high performace inference on NVIDIA jetson platforms
GNU General Public License v2.0
718 stars 209 forks source link

Build error on Windows #61

Open 2damin opened 4 years ago

2damin commented 4 years ago

Is it possible to build on Windows?

1. When i compiled it using "make", It is impossible to compile because "Makefile" didn't made automatically.

2. So when i build&compile it using "cmake", occurs compile error.

`cd build`
`cmake ..`
`cmake --build . --config "Release" `

-> nvcc fatal : 32 bit compilation is only supported for MS Visual Studio 2013 and earlier CMake Error at kernels_generated_activation_elu.cu.obj.Release.cmake:220 (message): Error generating D:/tkdnn/build/CMakeFiles/kernels.dir/src/kernels/Release/kernels_generated_activation_elu.cu.obj

3. So i changed x86 -> x64

`cd build`
`cmake -G "Visual Studio 15 2017 Win64" ..`
`cmake --build . --config "Release" `

-> cl : error D8021 : '/Who-deprecated-declarations' ~
CMake Error at kernels_generated_activation_elu.cu.obj.Release.cmake:220 (message): Error generating D:/tkdnn/build/CMakeFiles/kernels.dir/src/kernels/Release/kernels_generated_activation_elu.cu.obj**

perseusdg commented 4 years ago

try this: in https://github.com/ceccocats/tkDNN/blob/38106a9495438465118f8e36021126f5fbcbb57d/CMakeLists.txt#L5 remove "-Wno-deprecated-declarations -Wno-unused-variable" they are unsupported command line options for MSVC, and you will have to comment out and probably replace "unistd.h" with "windows.h" in the following places: https://github.com/ceccocats/tkDNN/blob/38106a9495438465118f8e36021126f5fbcbb57d/include/tkDNN/utils.h#L15 https://github.com/ceccocats/tkDNN/blob/38106a9495438465118f8e36021126f5fbcbb57d/include/tkDNN/DetectionNN.h#L7 https://github.com/ceccocats/tkDNN/blob/38106a9495438465118f8e36021126f5fbcbb57d/include/tkDNN/ImuOdom.h#L4 https://github.com/ceccocats/tkDNN/blob/38106a9495438465118f8e36021126f5fbcbb57d/include/tkDNN/Int8BatchStream.h#L15 and even after this MSVC will compile it with a ton of warnings and after deserialization there's a high chance you end up with errors like those pointed out in the other windows related issues

Hezhexi2002 commented 3 years ago

try this: in

https://github.com/ceccocats/tkDNN/blob/38106a9495438465118f8e36021126f5fbcbb57d/CMakeLists.txt#L5

remove "-Wno-deprecated-declarations -Wno-unused-variable" they are unsupported command line options for MSVC, and you will have to comment out and probably replace "unistd.h" with "windows.h" in the following places: https://github.com/ceccocats/tkDNN/blob/38106a9495438465118f8e36021126f5fbcbb57d/include/tkDNN/utils.h#L15

https://github.com/ceccocats/tkDNN/blob/38106a9495438465118f8e36021126f5fbcbb57d/include/tkDNN/DetectionNN.h#L7

https://github.com/ceccocats/tkDNN/blob/38106a9495438465118f8e36021126f5fbcbb57d/include/tkDNN/ImuOdom.h#L4

https://github.com/ceccocats/tkDNN/blob/38106a9495438465118f8e36021126f5fbcbb57d/include/tkDNN/Int8BatchStream.h#L15

and even after this MSVC will compile it with a ton of warnings and after deserialization there's a high chance you end up with errors like those pointed out in the other windows related issues

I met a similar error when I use ninja -j4 image

Hezhexi2002 commented 3 years ago

https://github.com/ceccocats/tkDNN/blob/master/CMakeLists.txt this is my current CMaKeLists.txt and this is the master branch but the CMaKeLists.txt https://github.com/ceccocats/tkDNN/blob/38106a9495438465118f8e36021126f5fbcbb57d/CMakeLists.txt#L5 is different,which is your branch?

Hezhexi2002 commented 3 years ago

https://github.com/ceccocats/tkDNN/blob/master/include/tkDNN/utils.h It seems like the code from master branch have add a precompiled statement to avoid the error image

but I still got the similar error even when I use the master branch,so how can I fix it? this is the error image I think maybe it is caused by the header file?

Hezhexi2002 commented 3 years ago

I have solved that,it is really caused by the headerfile,I add the wtypes.h and #define uint UINT and the two errors disappeard,but now I face a new problem.It should be a link error: image