OpenHantek / openhantek

OpenHantek is a DSO software for Hantek (Voltcraft/Darkwire/Protek/Acetech) USB digital signal oscilloscopes
http://openhantek.org/
GNU General Public License v3.0
774 stars 200 forks source link

Windows build issues #168

Open MikePerreman opened 6 years ago

MikePerreman commented 6 years ago

In the cmake.lists file, make sure you add "set(CMAKE_PREFIX_PATH "C:\Qt\5.10.0\msvc2015_64")" also, I have this error: CMake Error at cmake/fftw_on_windows.cmake:7 (message): Failed: lib

Here is the full error, it happens right after downloading fftw:

Found OpenGL: opengl32   
Download FFTW for mingw64
[download 0% complete]
[download 1% complete]
[download 2% complete]
.......
[download 100% complete]
Microsoft (R) Library Manager Version 14.00.24215.1
Copyright (C) Microsoft Corporation.  All rights reserved.

LINK : fatal error LNK1171: unable to load mspdb140.dll (error code: 193)

CMake Error at cmake/fftw_on_windows.cmake:7 (message):
  Failed: lib
Call Stack (most recent call first):
  cmake/fftw_on_windows.cmake:41 (CheckExitCodeAndExitIfError)
  openhantek/CMakeLists.txt:47 (include)
davidgraeff commented 6 years ago

A PR would be nice, of course.

circuit-specialists commented 6 years ago

I'm having troubles compiling on windows. I'm using QT Creator 5.11.1. What am I missing?

Running "C:\Program Files\CMake\bin\cmake.exe -E server "--pipe=\\.\pipe\{9d337508-488d-4fa6-bcd8-ad549491266e}" --experimental" in C:\Users\CircuitPro7\Downloads\build-openhantek-master-Desktop_Qt_5_11_1_MinGW_32bit-Default.
Starting to parse CMake project, using: "-DCMAKE_CXX_COMPILER:STRING=C:/Qt/Tools/mingw530_32/bin/g++.exe", "-DCMAKE_C_COMPILER:STRING=C:/Qt/Tools/mingw530_32/bin/gcc.exe", "-DCMAKE_PREFIX_PATH:STRING=C:/Qt/5.11.1/mingw53_32", "-DQT_QMAKE_EXECUTABLE:STRING=C:/Qt/5.11.1/mingw53_32/bin/qmake.exe".
The C compiler identification is GNU 5.3.0
The CXX compiler identification is GNU 5.3.0
Check for working C compiler: C:/Qt/Tools/mingw530_32/bin/gcc.exe
Check for working C compiler: C:/Qt/Tools/mingw530_32/bin/gcc.exe -- works
Detecting C compiler ABI info
Detecting C compiler ABI info - done
Detecting C compile features
Detecting C compile features - done
Check for working CXX compiler: C:/Qt/Tools/mingw530_32/bin/g++.exe
Check for working CXX compiler: C:/Qt/Tools/mingw530_32/bin/g++.exe -- works
Detecting CXX compiler ABI info
Detecting CXX compiler ABI info - done
Detecting CXX compile features
Detecting CXX compile features - done
Found OpenGL: opengl32   
Download/Extract FFTW for 32bit
Windows-10.0.17134
CMake Error at cmake/fftw_on_windows.cmake:7 (message):
  Failed: lib.exe:
Call Stack (most recent call first):
  cmake/fftw_on_windows.cmake:67 (CheckExitCodeAndExitIfError)
  openhantek/CMakeLists.txt:51 (include)

Configuring incomplete, errors occurred!
See also "C:/Users/CircuitPro7/Downloads/build-openhantek-master-Desktop_Qt_5_11_1_MinGW_32bit-Default/CMakeFiles/CMakeOutput.log".
CMake Project parsing failed.

CMakeOutput.log

davidgraeff commented 6 years ago

The fftw library in this repository might be for visual studio compilers only. Go to the website and download the GCC variant.

circuit-specialists commented 6 years ago

Just tried that. The libraries provided are the MINGW compiled. However, based on what you said, I start looking into those libraries. On FFTW's website, they make this statement, "In order to link to them from Visual C++, you will need to create .lib "import libraries" using the lib.exe..."*. So it would seem to me to be saying that cmake is looking for the VC++ lib.exe. Is that normal? I'm using MINGW for all of the compilation.

circuit-specialists commented 6 years ago

So I found that portion of code in fftw_on_windows.cmake. It is looking for the VC++ version. COMMAND "${_vs_bin_path}/lib.exe" ${LIBEXE_64} /def:${CMAKE_BINARY_DIR}/fftw/libfftw3-3.def /out:${CMAKE_BINARY_DIR}/fftw/libfftw3-3.lib I'm failing the first condition by cmake not recognizing the linux aspect of the build process.

davidgraeff commented 6 years ago

Hm, a lot of people run into this issue. And lib.exe is actually not doing much but creating a symbol export file. As soon as I get my hands on a Windows machine I will create the file and just add it to the repository and remove the entire lib.exe step.

circuit-specialists commented 6 years ago

I've played around with it more, but have yet to have a working model.

If you need windows, windows 10 is free and doesn't require a code for install. Just use an iso, and don't use a key on install. It'll say it's unactivated, but it'll still work just as normal.

circuit-specialists commented 6 years ago

So I did get further based on 0x8BitStorm previous thread. I've rewritten the "fftw_on_windows.cmake" file to specify the correct parameters. It does require you have the newest VC Studio installed, but it does work. I'm getting an error now at nearly the end of the build process, but I haven't had time to check it yet. Just thought I'd update you, and give you the file to include in the master.

fftw_on_windows.zip

circuit-specialists commented 6 years ago

So, I'm not entirely sure how to perform a pull request, this will be my first one, but I've submitted my changes to you for review. It compiles just fine now on windows.

LameLefty commented 6 years ago

Can someone please explain the entire toolchain/compilation process for Windows in a step-by-step process? I compiled the December 2017 release last night in 5 minutes using Ubuntu but in Windows it's all such a convoluted mess of installers, downloads, reconfiguring paths and editing CMakeLists.txt and/or fumbling with CMake-gui … Ugh. I grabbed the zip file posted by hollowman1701 back in March and it seems to work fine (Win10-64 bit) after deleting the 32-bit DLL referenced in his post. I'd really like to be able to build the software myself. Qt's Windows Maintenance Tool wants to target either mingw53 32-bit or any of the MS Visual Studio installations. With just mingw53 32 bit selected, after installation Qt Creator can't ever seem to find the C and C++ compiler binaries for the default Desktop toolkit. Do I have to install MS VisualStudio and then target that in Qt Creator?

LameLefty commented 6 years ago

Okay, so in the last week I've figured out how to build the code under Win10 and have a working application. Yay. But for some reason, my trigger slope indicators aren't displaying properly - rather, both indicators appear as question marks. Is this a glitch in the Qt version I'm building against (5.11.1), some weirdness with Win10, or … ?

ataricap1

I'm open to suggestions from anyone who might have a clue. Thanks!