Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. 3rd Party Software
  4. Trying to statically link enet libraries not working.

Trying to statically link enet libraries not working.

Scheduled Pinned Locked Moved 3rd Party Software
5 Posts 2 Posters 3.8k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • B Offline
    B Offline
    blah900
    wrote on last edited by
    #1

    So I am developing in QT 5 on windows 7 using qt creator.

    I wanted to link enet library found http://enet.bespin.org/

    I used qt creator to add statically linked external library and selected the enet64.lib and even tried adding in enet.lib but it doesn't seem to register the linkage at all.

    Some help would be greatly appreciated. Thanks!

    Some more info:

    I tried including the enet64.lib and enet.lib in the pro file by copying the enet libraries into the directory and using LIBS += -lenet64 and LIBS += -lenet
    Then I included the necessary header files found in the directory.

    However it keeps saying that I have unresolved external symbol which should be defined in the library.

    Any ideas?

    1 Reply Last reply
    0
    • B Offline
      B Offline
      bodzio131
      wrote on last edited by
      #2

      Have you added both 64/32 bit library into the same build process? If yes then you should use only apropriate version, not both together.
      Could you attach full error message from linker? I would like to see which symbol is missed.
      Have you check if enet library already contains the missed symbol?

      1 Reply Last reply
      0
      • B Offline
        B Offline
        blah900
        wrote on last edited by
        #3

        So, my pro file looks like so:
        @-------------------------------------------------

        Project created by QtCreator 2013-07-20T21:20:18

        #-------------------------------------------------

        QT += core gui

        greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

        TARGET = EnetTest
        TEMPLATE = app

        SOURCES += main.cpp
        MainWindow.cpp

        HEADERS += MainWindow.h
        enet/win32.h
        enet/utility.h
        enet/unix.h
        enet/types.h
        enet/time.h
        enet/protocol.h
        enet/list.h
        enet/enet.h
        enet/callbacks.h

        FORMS += MainWindow.ui

        LIBS += -LC:/testDirectory/enetTest -lenet64@

        And my main looks like so:
        @#include "MainWindow.h"
        #include <QApplication>
        #include "enet/enet.h"
        int main(int argc, char *argv[])
        {
        QApplication a(argc, argv);
        MainWindow w;
        w.show();
        enet_initialize();
        return a.exec();
        }@

        I compiled it with MSVC 2012 64 bit option in qt creator.
        When I call enet_initialize() it says things like: unresolved exernal symbol (name of function) referenced in function enet_initialize(and other functions inside the library) ...... enet64.lib(win32.o).

        Things like:
        enet.lib(win32.o):-1: error: LNK2019: unresolved external symbol __imp__WSAStartup@8 referenced in function _enet_initialize
        enet.lib(win32.o):-1: error: LNK2019: unresolved external symbol __imp__timeBeginPeriod@4 referenced in function _enet_initialize
        enet.lib(win32.o):-1: error: LNK2019: unresolved external symbol __imp__WSACleanup@0 referenced in function _enet_initialize
        enet.lib(win32.o):-1: error: LNK2019: unresolved external symbol __imp__timeEndPeriod@4 referenced in function _enet_deinitialize
        enet.lib(win32.o):-1: error: LNK2019: unresolved external symbol __imp__getsockname@12 referenced in function _enet_socket_get_address
        enet.lib(win32.o):-1: error: LNK2019: unresolved external symbol __imp__setsockopt@20 referenced in function _enet_socket_set_option

        1 Reply Last reply
        0
        • B Offline
          B Offline
          bodzio131
          wrote on last edited by
          #4

          Well, these are not unresolved symbols from enet library :) Look into "Windows Winsock API":http://msdn.microsoft.com/en-us/library/windows/desktop/ms741394(v=vs.85).aspx, you need to link against Ws2_32.lib.

          1 Reply Last reply
          0
          • B Offline
            B Offline
            blah900
            wrote on last edited by
            #5

            Oh thanks! That was the problem.... I didn't realize these were required libraries. I added -lwinmm and -lws2_32 and it compiles!

            1 Reply Last reply
            0

            • Login

            • Login or register to search.
            • First post
              Last post
            0
            • Categories
            • Recent
            • Tags
            • Popular
            • Users
            • Groups
            • Search
            • Get Qt Extensions
            • Unsolved