osechet / conan-qt

Conan package for Qt
MIT License
11 stars 18 forks source link

problem with sh commands #37

Closed vadixidav closed 7 years ago

vadixidav commented 7 years ago

I seem to be having some issues building. I am currently using openssl=linked.

When I build (specifically after removing _sh from my path), I see this:

        link /NOLOGO /DYNAMICBASE /NXCOMPAT /INCREMENTAL:NO /SUBSYSTEM:CONSOLE "/MANIFESTDEPENDENCY:type='win32' name='M
icrosoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture
='*'" /MANIFEST:embed /OUT:..\..\..\bin\moc.exe @C:\Users\worleyg\AppData\Local\Temp\nm12CC.tmp
Qt5Bootstrap.lib(qbytearray.obj) : error LNK2019: unresolved external symbol compress2 referenced in function "class QBy
teArray __cdecl qCompress(unsigned char const *,int,int)" (?qCompress@@YA?AVQByteArray@@PEBEHH@Z)
Qt5Bootstrap.lib(qbytearray.obj) : error LNK2019: unresolved external symbol uncompress referenced in function "class QB
yteArray __cdecl qUncompress(unsigned char const *,int)" (?qUncompress@@YA?AVQByteArray@@PEBEH@Z)
..\..\..\bin\moc.exe : fatal error LNK1120: 2 unresolved externals
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\amd64\link.EXE"' : return code '
0x460'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\amd64\nmake.exe"' : return code
'0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.

Qt/5.8.0@vadix/stable: ERROR: Package '8d6d24cc7b3687214215b1b6db6283e2a14dccef' build failed
Qt/5.8.0@vadix/stable: WARN: Build folder C:/.conan\ib28fy\1
ERROR: Qt/5.8.0@vadix/stable: Error in build() method, while calling '_build_msvc', line 208
        % (self.source_dir, vcvars, build_command, " ".join(build_args)))
        ConanException: Error 2 while executing cd qt5 && call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Comm
on7\Tools\../../VC/vcvarsall.bat" amd64 && nmake.exe

Normally, I get an issue with this, but I fixed it by removing the _sh from my path.

Additionally, I notice that there is no explicit usage of configure.bat, but adding that to the build just results in the same error. I have tried building in MinGW64 with MSVC still set as the target and removed the above lines, which doesn't work either, and stops at the same spot. I have also tried powershell, which is what produced the above situation. Is there some setup that needs to happen in the conanfile.py which can allow these commands to be executed in windows, or what can be done here at least as a temporary workaround to build on windows?

ericLemanissier commented 7 years ago

configure.bat is called, but the .bat extension is implicit : https://github.com/osechet/conan-qt/blob/b55d73ba31dfb32c16187f4c3f91fdf8bab1a05a/conanfile.py#L206 Which branch are you using ? the sh.exe workaround is not needed any more in branch testing/5.8.0 Regarding the linker error, did you try the fix mentioned here https://github.com/osechet/conan-qt/issues/25#issuecomment-319463151 ?

vadixidav commented 7 years ago

@ericLemanissier I have the changes merged from testing/5.8.0 into my release/5.8.0, however I did it before the sh workaround you committed. I will pull your commits and see if that improves the build situation.

vadixidav commented 7 years ago

Maybe the issue isn't related to sh at all. I think am still getting the same error. This is with the four commits you made also pulled in.

        link /NOLOGO /DYNAMICBASE /NXCOMPAT /INCREMENTAL:NO /SUBSYSTEM:CONSOLE "/MANIFESTDEPENDENCY:type='win32' name='M
icrosoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture
='*'" /MANIFEST:embed /OUT:..\..\..\bin\moc.exe @C:\Users\worleyg\AppData\Local\Temp\nm12EE.tmp
Qt5Bootstrap.lib(qbytearray.obj) : error LNK2019: unresolved external symbol compress2 referenced in function "class QBy
teArray __cdecl qCompress(unsigned char const *,int,int)" (?qCompress@@YA?AVQByteArray@@PEBEHH@Z)
Qt5Bootstrap.lib(qbytearray.obj) : error LNK2019: unresolved external symbol uncompress referenced in function "class QB
yteArray __cdecl qUncompress(unsigned char const *,int)" (?qUncompress@@YA?AVQByteArray@@PEBEH@Z)
..\..\..\bin\moc.exe : fatal error LNK1120: 2 unresolved externals
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\amd64\link.EXE"' : return code '
0x460'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\amd64\nmake.exe"' : return code
'0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.

Qt/5.8.0@vadix/stable: ERROR: Package '8d6d24cc7b3687214215b1b6db6283e2a14dccef' build failed
Qt/5.8.0@vadix/stable: WARN: Build folder C:/.conan\ib28fy\1
ERROR: Qt/5.8.0@vadix/stable: Error in build() method, while calling '_build_msvc', line 183
        % (self.source_dir, vcvars, build_command, " ".join(build_args)))
        ConanException: Error 2 while executing cd qt5 && call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Comm
on7\Tools\../../VC/vcvarsall.bat" amd64 && nmake.exe
ericLemanissier commented 7 years ago

according to http://doc.qt.io/qt-5/ssl.html#enabling-and-disabling-ssl-support configure can be passed OPENSSL_LIBS when "-openssl-linked" is used. Could you try it ?

vadixidav commented 7 years ago

@ericLemanissier Qt is picking up OpenSSL and not zlib, which is good, and that is working. My build fails regardless of the OpenSSL situation. Sorry if that wasn't exactly clear.

From what I am seeing online, my issue looks like the filesystem paths are too long in my QT build. I am going to attempt some workarounds in this area and I will report back.

vadixidav commented 7 years ago

Nevermind, I guess it's probably just something with zlib. I can't build it with or without the flag (-no-zlib) and with or without openssl's zlib. Any combination of those leads to the above error. Any ideas? And yes, -openssl-linked is already passed in by the code in testing:

            if self.options.openssl == "no":
                args += ["-no-openssl"]
            elif self.options.openssl == "yes":
                args += ["-openssl"]
            else:
                args += ["-openssl-linked"]

Edit: Also, I'm not sure if this is really the original issue title anymore. The original issue is actually solved, so I'm going to close this and repost this in the openssl issue.

tonka3000 commented 7 years ago

hey @vadixidav ,

how do you resolve the original issue? I have exactly the same error message from the linker!

Thanks in advance
Tonka