Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

unresolved external symbol __imp_CommandLineToArgvW in Windows build from source



  • I have a project I am maintaining where I need to OpenSSL support to WebKit on 5.5.1. The build worked prior to adding it, but now I have an unresolved external that may or may not be relevant to my application but which is getting in the way of completing the build in any case. I have tried to exclude various modules to avoid the problem, and I found through search that some have found this due to needing shell32.dll, so I added the "um" subdir from Windows Kits 10 to my environment variables as well as attempted to specify it using -L, all to no avail.

    (I know that some may advise transitioning to WebEngine on 5.7, but now is not an appropriate time to change - I believe it should be possible to fix my current build and hope that folks can address the issue for this configuration.)

    The RELEVANT COMPILER OUTPUT IS:
    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:....\bin\QtWebProcess.exe @C:\Users\buckler\AppData\Local\Temp\nmCEB3.tmp
    qtmain.lib(qtmain_win.obj) : error LNK2019: unresolved external symbol __imp_CommandLineToArgvW referenced in function WinMain
    ....\bin\QtWebProcess.exe : fatal error LNK1120: 1 unresolved externals
    NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\amd64\link.EXE"' : return code '0x460'
    Stop.

    THE (latest) CONFIG LINE I HAVE USED IS (I have tried many combinations other than this but this is what I have now):
    ..\Qt-5.5.1\configure -release -nomake tests -icu -platform win32-msvc2015 -openssl-linked OPENSSL_LIBS="-lssleay32 –llibeay32" -nomake examples

    IF IT IS RELEVANT, THE CONFIG I USED BEFORE ADDING OPENSSL THAT WORKED WAS:
    ..\Qt-5.5.1\configure -release -nomake tests -nomake examples -skip qtwebchannel -skip qt3D -skip qtsensors -skip qtserialport -skip qtwayland -skip qtandroidextras -icu -platform win32-msvc2015

    SOME COMMENTARY ON-LINE SUGGESTS IT MAY HAVE TO DO WITH USE OF 64-BIT, SO AS REFERENCE IT MAY BE USEFUL TO KNOW THAT I DO THIS BEFORE THE CONFIG:
    cd "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC"
    vcvarsall amd64

    Many thanks,
    Andy



  • I was able to fix this by a workaround. I commented out the body of the function using it since we do not use that in our application. It seems brute force but it did work and I am now up and running with SSL.

    Thanks all for considering,
    Andy


Log in to reply