PDA

View Full Version : Compiling Qxt with Ssh support under Windows



Axtroz
22nd February 2011, 22:51
Hello,
I have some trouble compiling Qxt on Windows with ssh support.
I checked libqxt's docs and it seems that it uses libssh2 (which is cross-platform afaik). I got an archlinux box and a windows 7 PC. Libqxt compiles nicely and runs with ssh support under my Arch fine. Problem is when I try to compile libqxt under windows. It compiles, but the ssh-related stuff are cut out.
I am doing the following:
Download Qt SDK for Windows from the site and install to D:\dev
Download precompiled libssh for windows ( http://www.libssh2.org/mail/libssh2-devel-archive-2010-04/0043.shtml ) and extract to D:\dev\qt. Now when I start Qt Creator I can use the libssh2 functions inside and compile successfully. Now I download libqxt-tip.zip from the official website, extract into D:\dev and run Qt Command Prompt, cd to D:\dev\libqxt and configure.bat -prefix "D:\dev\qt" -I "D:\dev\qt\include" -L "D:\dev\qt\lib" -l ssh2 and then mingw32-make. It compiles, creates the Qxt*.dll files and with make install they go to the places they need to. Now when I open QtCreator I can use everything that Qxt provides EXCEPT the ssh functions. They give me errors complaining some qxtssh*.h files are missing, so I copy them over from the sources. Program compiles almost fine. Reaches end, spits a ton of undefined reference messages and quits with collect2: ld returned status 1 or so. I got the program dllexp and opened up QxtNetwork.dll and checked the functions in the DLL. Nothing connected to ssh. Now I ran nm -D /usr/lib/QxtNetwork/QxtNetwork.so.0.7.0 and it gives me the exact same list as dllexp, but at the end of the output I see lots and lots of ssh functions. Any hints? Thanks in advance for all replies!

francescortiz
13th March 2011, 15:30
You don't need libssh2 since a patched version of it comes within qxt 0.7 (the official version does not provide what qxt needs).

I have been fighting with it for hours. Apparently you only have to tell qxt where you have openssl installed, and if ssl is available it should build its own libssh2 and the qxt ssh classes should the build.

I was able to build:
1 - Download OpenSSL and install it to: C:\OpenSSL-Win32 (default folder)
2 - Download zlib and install it to: C:\GnuWin32 (http://gnuwin32.sourceforge.net/packages/zlib.htm)
3 - Edit network.pri, network.pro and qxtnetwork.h by commenting all checks for HAVE_OPENSSL (this may not be needed)
4 - run configure like this: (adapt folders if needed)


configure -debug_and_release -no-db -I C:\GnuWin32\include -I C:\OpenSSL-Win32\include -L C:\GnuWin32\bin -L C:\GnuWin32\lib -L C:\OpenSSL-Win32 -L C:\OpenSSL-Win32\lib\MinGW -l libeay32 -l ssleay32 -l ws2_32

4 - run mingw32-make
5 - run mingw32-make install