LibVNC / libvncserver

LibVNCServer/LibVNCClient are cross-platform C libraries that allow you to easily implement VNC server or client functionality in your program.
GNU General Public License v2.0
1.1k stars 483 forks source link

Compilation fails on Windows 10 #448

Closed gitdevmod closed 3 years ago

gitdevmod commented 3 years ago

Describe the bug Compilation fails on Windows 10

Logs/Backtraces cmake -G "Ninja" -DBUILD_TESTING=ON -DCMAKE_CXX_COMPILER=ccache -DCMAKE_CXX_COMPILER_ARG1=g++ -DCMAKE_C_COMPILER=ccache -DCMAKE_C_COMPILER_ARG1=gcc -DCMAKE_INSTALL_PREFIX="E:/kde-craft/CraftRoot" -DCMAKE_PREFIX_PATH="E:/kde-craft/CraftRoot" -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON -DKDE_INSTALL_USE_QT_SYSPATHS=ON "E:\kde-craft\CraftRoot\build\\b0ed6cb8\libvncserver-LibVNCServer-0.9.13" executing command: "E:\kde-craft\CraftRoot\dev-utils\bin\cmake.exe" -G "Ninja" -DBUILD_TESTING=ON -DCMAKE_CXX_COMPILER=ccache -DCMAKE_CXX_COMPILER_ARG1=g++ -DCMAKE_C_COMPILER=ccache -DCMAKE_C_COMPILER_ARG1=gcc -DCMAKE_INSTALL_PREFIX="E:/kde-craft/CraftRoot" -DCMAKE_PREFIX_PATH="E:/kde-craft/CraftRoot" -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=ON -DKDE_INSTALL_USE_QT_SYSPATHS=ON "E:\kde-craft\CraftRoot\build\\b0ed6cb8\libvncserver-LibVNCServer-0.9.13" -- The C compiler identification is GNU 8.1.0 -- Check for working C compiler: E:/kde-craft/CraftRoot/dev-utils/bin/ccache.exe -- Check for working C compiler: E:/kde-craft/CraftRoot/dev-utils/bin/ccache.exe - works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Detecting C compile features -- Detecting C compile features - done -- Found ZLIB: E:/kde-craft/CraftRoot/lib/libz.dll.a (found version "1.2.11") -- Could NOT find LZO -- Found JPEG: E:/kde-craft/CraftRoot/lib/libjpeg.dll.a (found version "62") -- Performing Test FOUND_LIBJPEG_TURBO -- Performing Test FOUND_LIBJPEG_TURBO - Success -- Found PNG: E:/kde-craft/CraftRoot/lib/libpng.dll.a (found version "1.6.37") -- Looking for pthread.h -- Looking for pthread.h - found -- Performing Test CMAKE_HAVE_LIBC_PTHREAD -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success -- Found Threads: TRUE -- Found SDL2: mingw32;-mwindows;E:/kde-craft/CraftRoot/lib/libSDL2main.a;E:/kde-craft/CraftRoot/lib/libSDL2.dll.a -- Some or all of the gtk libraries were not found. (missing: GTK2_GTK_LIBRARY GTK2_GTK_INCLUDE_DIR GTK2_GDK_INCLUDE_DIR GTK2_GDKCONFIG_INCLUDE_DIR GTK2_GDK_LIBRARY) -- Could NOT find GnuTLS (missing: GNUTLS_LIBRARY GNUTLS_INCLUDE_DIR) -- Found OpenSSL: E:/kde-craft/CraftRoot/lib/libcrypto.dll.a (found version "1.1.1g") -- Found FFMPEG: E:/kde-craft/CraftRoot/include (found suitable version "4.1", minimum required is "3.1.0") found components: avformat avcodec avutil swscale -- Looking for dirent.h -- Looking for dirent.h - found -- Looking for endian.h -- Looking for endian.h - not found -- Looking for fcntl.h -- Looking for fcntl.h - found -- Looking for netinet/in.h -- Looking for netinet/in.h - not found -- Looking for sys/endian.h -- Looking for sys/endian.h - not found -- Looking for sys/socket.h -- Looking for sys/socket.h - not found -- Looking for sys/stat.h -- Looking for sys/stat.h - found -- Looking for sys/time.h -- Looking for sys/time.h - found -- Looking for sys/types.h -- Looking for sys/types.h - found -- Looking for sys/wait.h -- Looking for sys/wait.h - not found -- Looking for unistd.h -- Looking for unistd.h - found -- Looking for sys/resource.h -- Looking for sys/resource.h - not found -- Looking for vfork.h -- Looking for vfork.h - not found -- Looking for ws2tcpip.h -- Looking for ws2tcpip.h - found -- Looking for arpa/inet.h -- Looking for arpa/inet.h - not found -- Looking for stdint.h -- Looking for stdint.h - found -- Looking for stddef.h -- Looking for stddef.h - found -- Looking for sys/types.h -- Looking for sys/types.h - found -- Looking for gettimeofday -- Looking for gettimeofday - found -- Looking for vfork -- Looking for vfork - not found -- Looking for vprintf -- Looking for vprintf - found -- Looking for mmap -- Looking for mmap - not found -- Looking for fork -- Looking for fork - not found -- Looking for ftime -- Looking for ftime - found -- Looking for gethostbyname -- Looking for gethostbyname - not found -- Looking for gethostname -- Looking for gethostname - not found -- Looking for inet_ntoa -- Looking for inet_ntoa - not found -- Looking for memmove -- Looking for memmove - found -- Looking for memset -- Looking for memset - found -- Looking for mkfifo -- Looking for mkfifo - not found -- Looking for select -- Looking for select - not found -- Looking for socket -- Looking for socket - not found -- Looking for strchr -- Looking for strchr - found -- Looking for strcspn -- Looking for strcspn - found -- Looking for strdup -- Looking for strdup - found -- Looking for strerror -- Looking for strerror - found -- Looking for strstr -- Looking for strstr - found -- Looking for htobe64 -- Looking for htobe64 - not found -- Looking for OSSwapHostToBigInt64 -- Looking for OSSwapHostToBigInt64 - not found -- Building crypto with Libgcrypt -- Threads support is using pthreads -- Check size of pid_t -- Check size of pid_t - done -- Check size of size_t -- Check size of size_t - done -- Check size of socklen_t -- Check size of socklen_t - failed -- Check size of in_addr_t -- Check size of in_addr_t - failed -- Check if the system is big endian -- Searching 16 bit integer -- Check size of unsigned short -- Check size of unsigned short - done -- Searching 16 bit integer - Using unsigned short -- Check if the system is big endian - little endian -- Building TLS with OpenSSL -- Configuring done -- Generating done CMake Warning: Manually-specified variables were not used by the project:

BUILD_TESTING
CMAKE_CXX_COMPILER
CMAKE_CXX_COMPILER_ARG1
CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP
KDE_INSTALL_USE_QT_SYS_PATHS

-- Build files have been written to: E:/kde-craft/CraftRoot/build/_/b0ed6cb8/build executing command: "E:\kde-craft\CraftRoot\dev-utils\bin\ninja.exe" [1/102] Building C object CMakeFiles/client_examples_backchannel.dir/client_examples/backchannel.c.obj [2/102] Building C object CMakeFiles/client_examples_SDLvncviewer.dir/clientexamples/SDLvncviewer.c.obj E:/kde-craft/CraftRoot/build//b0ed6cb8/libvncserver-LibVNCServer-0.9.13/client_examples/SDLvncviewer.c: In function 'log_tofile': E:/kde-craft/CraftRoot/build//b0ed6cb8/libvncserver-LibVNCServer-0.9.13/client_examples/SDLvncviewer.c:267:5: warning: implicit declaration of function 'time'; did you mean 'ftime'? [-Wimplicit-function-declaration] time(&logclock); ^~~~ ftime E:/kde-craft/CraftRoot/build//b0ed6cb8/libvncserver-LibVNCServer-0.9.13/client_examples/SDLvncviewer.c:268:5: warning: implicit declaration of function 'strftime' [-Wimplicit-function-declaration] strftime(buf, 255, "%d/%m/%Y %X ", localtime(&logclock)); ^~~~ E:/kde-craft/CraftRoot/build//b0ed6cb8/libvncserver-LibVNCServer-0.9.13/clientexamples/SDLvncviewer.c:268:5: warning: incompatible implicit declaration of built-in function 'strftime' E:/kde-craft/CraftRoot/build//b0ed6cb8/libvncserver-LibVNCServer-0.9.13/clientexamples/SDLvncviewer.c:268:5: note: include '' or provide a declaration of 'strftime' E:/kde-craft/CraftRoot/build//b0ed6cb8/libvncserver-LibVNCServer-0.9.13/clientexamples/SDLvncviewer.c:245:1: +#include static void E:/kde-craft/CraftRoot/build//b0ed6cb8/libvncserver-LibVNCServer-0.9.13/client_examples/SDLvncviewer.c:268:5: strftime(buf, 255, "%d/%m/%Y %X ", localtime(&logclock)); ^~~~ E:/kde-craft/CraftRoot/build//b0ed6cb8/libvncserver-LibVNCServer-0.9.13/client_examples/SDLvncviewer.c:268:40: warning: implicit declaration of function 'localtime'; did you mean 'LocalSize'? [-Wimplicit-function-declaration] strftime(buf, 255, "%d/%m/%Y %X ", localtime(&logclock)); ^~~~~ LocalSize E:/kde-craft/CraftRoot/build//b0ed6cb8/libvncserver-LibVNCServer-0.9.13/client_examples/SDLvncviewer.c:268:40: warning: passing argument 4 of 'strftime' makes pointer from integer without a cast [-Wint-conversion] strftime(buf, 255, "%d/%m/%Y %X ", localtime(&logclock)); ^~~~~ E:/kde-craft/CraftRoot/build//b0ed6cb8/libvncserver-LibVNCServer-0.9.13/client_examples/SDLvncviewer.c:268:40: note: expected 'const void *' but argument is of type 'int' [3/102] Building C object CMakeFiles/vncserver.dir/libvncserver/draw.c.obj [4/102] Building C object CMakeFiles/vncserver.dir/libvncserver/selbox.c.obj [5/102] Building C object CMakeFiles/vncserver.dir/libvncserver/ultra.c.obj [6/102] Building C object CMakeFiles/vncserver.dir/libvncserver/cargs.c.obj [7/102] Building C object CMakeFiles/vncserver.dir/libvncserver/cursor.c.obj [8/102] Building C object CMakeFiles/vncserver.dir/libvncserver/httpd.c.obj [9/102] Building C object CMakeFiles/vncserver.dir/libvncserver/zrlepalettehelper.c.obj [10/102] Building C object CMakeFiles/vncserver.dir/common/minilzo.c.obj [11/102] Building C object CMakeFiles/vncserver.dir/common/vncauth.c.obj [12/102] Building C object CMakeFiles/vncserver.dir/common/crypto_libgcrypt.c.obj [13/102] Building C object CMakeFiles/vncserver.dir/libvncserver/scale.c.obj [14/102] Building C object CMakeFiles/vncserver.dir/libvncserver/rfbssl_openssl.c.obj [15/102] Building C object CMakeFiles/vncserver.dir/libvncserver/zlib.c.obj [16/102] Building C object CMakeFiles/vncserver.dir/common/turbojpeg.c.obj [17/102] Building C object CMakeFiles/vncserver.dir/libvncserver/zrleoutstream.c.obj [18/102] Building C object CMakeFiles/vncserver.dir/libvncserver/zrle.c.obj [19/102] Building C object CMakeFiles/vncserver.dir/libvncserver/tightvnc-filetransfer/rfbtightserver.c.obj [20/102] Building C object CMakeFiles/vncserver.dir/libvncserver/tightvnc-filetransfer/filelistinfo.c.obj [21/102] Building C object CMakeFiles/vncserver.dir/libvncserver/tight.c.obj [22/102] Building C object CMakeFiles/vncserver.dir/libvncserver/tightvnc-filetransfer/filetransfermsg.c.obj [23/102] Building C object CMakeFiles/vncserver.dir/libvncserver/stats.c.obj [24/102] Building C object CMakeFiles/vncserver.dir/libvncserver/tightvnc-filetransfer/handlefiletransferrequest.c.obj [25/102] Building C object CMakeFiles/vncserver.dir/libvncserver/main.c.obj [26/102] Building C object CMakeFiles/vncserver.dir/libvncserver/rfbregion.c.obj [27/102] Building C object CMakeFiles/vncserver.dir/libvncserver/sockets.c.obj [28/102] Building C object CMakeFiles/vncserver.dir/libvncserver/auth.c.obj [29/102] Building C object CMakeFiles/vncserver.dir/libvncserver/corre.c.obj [30/102] Building C object CMakeFiles/vncserver.dir/libvncserver/rfbserver.c.obj [31/102] Building C object CMakeFiles/vncserver.dir/libvncserver/hextile.c.obj [32/102] Building C object CMakeFiles/vncserver.dir/libvncserver/cutpaste.c.obj [33/102] Building C object CMakeFiles/vncclient.dir/libvncclient/cursor.c.obj [34/102] Building C object CMakeFiles/vncserver.dir/libvncserver/rre.c.obj [35/102] Building C object CMakeFiles/vncserver.dir/libvncserver/font.c.obj [36/102] Building C object CMakeFiles/vncclient.dir/libvncclient/listen.c.obj [37/102] Building C object CMakeFiles/examples_blooptest.dir/examples/blooptest.c.obj [38/102] Building C object CMakeFiles/vncclient.dir/common/turbojpeg.c.obj [39/102] Building C object CMakeFiles/examples_camera.dir/examples/camera.c.obj [40/102] Building C object CMakeFiles/vncserver.dir/libvncserver/translate.c.obj [41/102] Building C object CMakeFiles/examples_colourmaptest.dir/examples/colourmaptest.c.obj [42/102] Building C object CMakeFiles/examples_backchannel.dir/examples/backchannel.c.obj [43/102] Building C object CMakeFiles/vncclient.dir/libvncclient/sockets.c.obj [44/102] Linking C static library libvncserver.a [45/102] Building C object CMakeFiles/vncclient.dir/common/minilzo.c.obj [46/102] Building C object CMakeFiles/vncclient.dir/libvncclient/tls_openssl.c.obj [47/102] Building C object CMakeFiles/vncclient.dir/libvncclient/rfbproto.c.obj [48/102] Building C object CMakeFiles/vncclient.dir/common/crypto_libgcrypt.c.obj [49/102] Building C object CMakeFiles/vncclient.dir/libvncclient/vncviewer.c.obj [50/102] Linking C static library libvncclient.a [51/102] Linking C executable examples\camera.exe [52/102] Linking C executable examples\backchannel.exe [53/102] Linking C executable examples\blooptest.exe [54/102] Linking C executable examples\colourmaptest.exe [55/102] Linking C executable client_examples\SDLvncviewer.exe [56/102] Linking C executable client_examples\backchannel.exe [57/102] Building C object CMakeFiles/examples_cursors.dir/examples/cursors.c.obj [58/102] Building C object CMakeFiles/examples_example.dir/examples/example.c.obj [59/102] Linking C executable examples\example.exe [60/102] Linking C executable examples\cursors.exe [61/102] Building C object CMakeFiles/examples_fontsel.dir/examples/fontsel.c.obj [62/102] Building C object CMakeFiles/examples_pnmshow24.dir/examples/pnmshow24.c.obj [63/102] Building C object CMakeFiles/examples_simple15.dir/examples/simple15.c.obj [64/102] Linking C executable examples\fontsel.exe [65/102] Building C object CMakeFiles/examples_pnmshow.dir/examples/pnmshow.c.obj [66/102] Building C object CMakeFiles/examples_simple.dir/examples/simple.c.obj [67/102] Linking C executable examples\pnmshow24.exe [68/102] Building C object CMakeFiles/examples_repeater.dir/examples/repeater.c.obj [69/102] Linking C executable examples\pnmshow.exe [70/102] Linking C executable examples\simple.exe [71/102] Building C object CMakeFiles/client_examples_vnc2mpg.dir/client_examples/vnc2mpg.c.obj FAILED: CMakeFiles/client_examples_vnc2mpg.dir/client_examples/vnc2mpg.c.obj E:\kde-craft\CraftRoot\dev-utils\bin\ccache.exe gcc -DLIBVNCSERVER_HAVE_LIBJPEG -DLIBVNCSERVER_HAVE_LIBPNG -DLIBVNCSERVER_HAVE_LIBZ -D_WIN32WINNT=0x0600 -IE:/kde-craft/CraftRoot/build//b0ed6cb8/libvncserver-LibVNCServer-0.9.13 -I. -IE:/kde-craft/CraftRoot/build//b0ed6cb8/libvncserver-LibVNCServer-0.9.13/libvncserver -IE:/kde-craft/CraftRoot/build//b0ed6cb8/libvncserver-LibVNCServer-0.9.13/common -IE:/kde-craft/CraftRoot/include -IE:/kde-craft/CraftRoot/include/SDL2 -fdiagnostics-color=always -O2 -g -DNDEBUG -MD -MT CMakeFiles/client_examples_vnc2mpg.dir/client_examples/vnc2mpg.c.obj -MF CMakeFiles\client_examples_vnc2mpg.dir\client_examples\vnc2mpg.c.obj.d -o CMakeFiles/client_examples_vnc2mpg.dir/clientexamples/vnc2mpg.c.obj -c E:/kde-craft/CraftRoot/build//b0ed6cb8/libvncserver-LibVNCServer-0.9.13/clientexamples/vnc2mpg.c E:/kde-craft/CraftRoot/build//b0ed6cb8/libvncserver-LibVNCServer-0.9.13/client_examples/vnc2mpg.c: In function 'vnc_mallocfb': E:/kde-craft/CraftRoot/build//b0ed6cb8/libvncserver-LibVNCServer-0.9.13/client_examples/vnc2mpg.c:391:16: error: 'SIGQUIT' undeclared (first use in this function); did you mean 'SIGABRT'? signal(SIGQUIT,signalhandler); ^~~ SIGABRT E:/kde-craft/CraftRoot/build//b0ed6cb8/libvncserver-LibVNCServer-0.9.13/client_examples/vnc2mpg.c:391:16: note: each undeclared identifier is reported only once for each function it appears in [72/102] Linking C executable examples\repeater.exe [73/102] Linking C executable examples\simple15.exe [74/102] Building C object CMakeFiles/examples_rotate.dir/examples/rotate.c.obj [75/102] Building C object CMakeFiles/examples_regiontest.dir/examples/regiontest.c.obj [76/102] Building C object CMakeFiles/client_examples_ppmtest.dir/client_examples/ppmtest.c.obj [77/102] Building C object CMakeFiles/test_encodingstest.dir/test/encodingstest.c.obj [78/102] Building C object CMakeFiles/examples_storepasswd.dir/examples/storepasswd.c.obj ninja: build stopped: subcommand failed.

Your environment (please complete the following information):

bk138 commented 3 years ago

Dear @gitdevmod what is the question? I can only see a log dump. For us, Windows 10 building works.

gitdevmod commented 3 years ago

@bk138 I see in your log Visual Studio, I'm using mingw and it fails because SIGQUIT is not declared

[71/102] Building C object CMakeFiles/client_examples_vnc2mpg.dir/client_examples/vnc2mpg.c.obj FAILED: CMakeFiles/client_examples_vnc2mpg.dir/client_examples/vnc2mpg.c.obj E:\kde-craft\CraftRoot\dev-utils\bin\ccache.exe gcc -DLIBVNCSERVER_HAVE_LIBJPEG -DLIBVNCSERVER_HAVE_LIBPNG -DLIBVNCSERVER_HAVE_LIBZ -D_WIN32_WINNT=0x0600 -IE:/kde-craft/CraftRoot/build//b0ed6cb8/libvncserver-LibVNCServer-0.9.13 -I. -IE:/kde-craft/CraftRoot/build//b0ed6cb8/libvncserver-LibVNCServer-0.9.13/libvncserver -IE:/kde-craft/CraftRoot/build//b0ed6cb8/libvncserver-LibVNCServer-0.9.13/common -IE:/kde-craft/CraftRoot/include -IE:/kde-craft/CraftRoot/include/SDL2 -fdiagnostics-color=always -O2 -g -DNDEBUG -MD -MT CMakeFiles/client_examples_vnc2mpg.dir/client_examples/vnc2mpg.c.obj -MF CMakeFiles\client_examples_vnc2mpg.dir\client_examples\vnc2mpg.c.obj.d -o CMakeFiles/client_examples_vnc2mpg.dir/client_examples/vnc2mpg.c.obj -c E:/kde-craft/CraftRoot/build//b0ed6cb8/libvncserver-LibVNCServer-0.9.13/client_examples/vnc2mpg.c E:/kde-craft/CraftRoot/build//b0ed6cb8/libvncserver-LibVNCServer-0.9.13/client_examples/vnc2mpg.c: In function 'vnc_malloc_fb': E:/kde-craft/CraftRoot/build//b0ed6cb8/libvncserver-LibVNCServer-0.9.13/client_examples/vnc2mpg.c:391:16: error: 'SIGQUIT' undeclared (first use in this function); did you mean 'SIGABRT'? signal(SIGQUIT,signal_handler); ^~~ SIGABRT E:/kde-craft/CraftRoot/build//b0ed6cb8/libvncserver-LibVNCServer-0.9.13/client_examples/vnc2mpg.c:391:16: note: each undeclared identifier is reported only once for each function it appears in

I'm not sure if it's the right solution, with this patch I can compile

--- libvncserver-LibVNCServer-0.9.13\client_examples\vnc2mpg.c.orig 2020-06-13 20:49:53.000000000 +0200

+++ libvncserver-LibVNCServer-0.9.13\client_examples\vnc2mpg.c 2020-10-13 13:44:00.926438200 +0200
@@ -388,7 +388,9 @@
            return FALSE;
         signal(SIGINT,signal_handler);
         signal(SIGTERM,signal_handler);
-        signal(SIGQUIT,signal_handler);
+       #ifdef SIGQUIT
+               signal(SIGQUIT,signal_handler);
+       #endif
         signal(SIGABRT,signal_handler);
         /* These assignments assumes the AVFrame buffer is contigous. This is true in current ffmpeg versions for
          * most non-HW accelerated bits, but may not be true globally. */
bk138 commented 3 years ago

Try disabling FFMPEG when setting CMAKE flags.

bk138 commented 3 years ago

But anyhow, your patch seems OK! Do you want to file a pull request?

gitdevmod commented 3 years ago

Ok cool, I'll do a PR

bk138 commented 3 years ago

Closed by #449