Can't build using 3rd party libraries



  • I have a problem accessing a 3rd party library (SMS) in QT Creator.
    I'm on Windows 10, 64 bit
    Qt Creator 4.2.1 - Based on Qt 5.8.0 (MSVC 2015, 32 bit)
    Using Visual Studio 2015 (Community and Enterprise) with update 3

    In Visual Studio, I was able to correct the problem using Windows Environment Variables and by setting Character Set to Unicode. But I would really prefer to use Qt Creator for an IDE.

    In Qt Creator, the simplest code referring to SMS produces the build error below. There are no *d.dll or *d.lib files (no debugging versions) but that does not seem to prevent debugging my own code in Visual Studio. I have tried release-mode building in Qt Creator, but that did not help. I have even tried modifying the *.pro file with an absolute path - no go.

    Can anyone tell me how to buildling with these 3rd party libraries?
    Thanks!

    The build error:

    	link /NOLOGO /DYNAMICBASE /NXCOMPAT /INCREMENTAL:NO /SUBSYSTEM:WINDOWS "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /MANIFEST:embed /OUT:release\legereModeler.exe @C:\Users\ROBIN_~1\AppData\Local\Temp\legereModeler.exe.4552.1922.jom
    surfacesmoother.obj : error LNK2019: unresolved external symbol "void __cdecl iwos_WriteBuffer(char const *,char const *,char const *)" (?iwos_WriteBuffer@@YAXPEBD00@Z) referenced in function "public: virtual void __cdecl IwTArray<class IwVector3d>::Dump(void)const " (?Dump@?$IwTArray@VIwVector3d@@@@UEBAXXZ)
    surfacesmoother.obj : error LNK2001: unresolved external symbol "public: virtual void __cdecl IwObject::Dump(char *)const " (?Dump@IwObject@@UEBAXPEAD@Z)
    release\legereModeler.exe : fatal error LNK1120: 2 unresolved externals
    jom: E:\sandbox\build-legereModeler-Desktop_Qt_5_8_0_MSVC2015_64bit-Release\Makefile.Release [release\legereModeler.exe] Error 1120
    jom: E:\sandbox\build-legereModeler-Desktop_Qt_5_8_0_MSVC2015_64bit-Release\Makefile [release] Error 2
    14:58:30: The process "C:\Qt\Qt5.8.0\Tools\QtCreator\bin\jom.exe" exited with code 2.
    

    My *.pro file:

    QT       += core gui
    
    greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
    
    TARGET = legereModeler
    TEMPLATE = app
    DEFINES += QT_DEPRECATED_WARNINGS
    
    
    
    SOURCES += main.cpp\
        control/surfacesmoother.cpp \
        display/mainwindow.cpp \
        handlers/mainwindowhandlers.cpp \
        model/fakedata.cpp \
        utils/coordinatesmanager.cpp
    
    HEADERS += control/surfacesmoother.h \
        display/mainwindow.h \
        handlers/mainwindowhandlers.h \
        model/fakedata.h \
        utils/coordinatesmanager.h \
        GeneratedFiles/ui_mainwindow.h
    
    FORMS    += mainwindow.ui
    
    LIBS += -L$$PWD/../SMS/ -lNLib
    #LIBS += -LC:\sandbox\SMS -lNLib
    #LIBS += -L$$PWD/../SMS/ -lNLibd
    
    LIBS += -L$$PWD/../SMS/ -lNMTLib
    #LIBS += -LC:\sandbox\SMS -lNMTLib
    #LIBS += -L$$PWD/../SMS/ -lNMTLibd
    
    INCLUDEPATH += $$PWD/../SMS
    DEPENDPATH += $$PWD/../SMS
    

  • Lifetime Qt Champion

    Hi,

    Do you mean you are building your Qt project with Visual Studio successfully and only modify the source charset option ?



  • @SGaist Yes, that's right.


  • Lifetime Qt Champion

    Then you should be able to do that through QMAKE_CXXFLAGS



  • @SGaist said in Can't build using 3rd party libraries:

    QMAKE_CXXFLAGS

    Eeeeg, looks really cool (just looked it up) .... but I'm a Qt newbie ..... I was hoping that importing the *.lib and *.dll files should "just make it work". (As it does in MSVS.)

    So I found this: http://doc.qt.io/qt-5/qmake-variable-reference.html#qmake-cxxflags but I haven't clue 1 where to start learning to use them..... could you point me in the right direction?

    Thanks!


  • Lifetime Qt Champion

    Add it to your .pro file and then grab from Visual Studio the switch used to select the character.

    QMAKE_CXXFLAGS += whatever_you_found
    

Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.