mapeditor / tiled

Flexible level editor
https://www.mapeditor.org/
Other
11.1k stars 1.75k forks source link

Issue compiling on Windows when path contains spaces #1279

Open deviousdaemon opened 8 years ago

deviousdaemon commented 8 years ago

Every time I've tried to compile Tiled I get a LNK1104 error that "intermediate.tiled.exe.manifest" could not be opened. I've tried compiling both the 64-bit and 32-bit version, reinstalled qt-5, and tried visual studio 2013 to no avail. Is there anything else I could try?

bjorn commented 8 years ago

Hmm, I've never heard of that problem before unfortunately. Two things that may help:

deviousdaemon commented 8 years ago

Well now I get an exit code 1 error where "windres.exe" has failed preprocessing. I think I may just stick the the itch.io build. I also did try reinstalling Qt 5.5, but that didn't help either.

bjorn commented 8 years ago

Hmm, that's very strange. I've just recently installed Qt on a new Windows 10 install and simply chose Qt 5.5 for MinGW 4.9.2, plus Tools/MinGW 4.9.2 and it compiles Tiled fine.

I would expect the failed "windres.exe" only when using tiled.pro and not when using tiled.qbs. You are trying to compile master right, rather than the 0.16.1 source files?

Note that if you're looking for a more recent build, there are snapshots available for Windows at http://update.mapeditor.org/snapshots-win/ (these are also linked from the itch.io download page).

deviousdaemon commented 8 years ago

Yes I have only been trying the tiled master branch and the tiled.qbs file but it's made no difference, only different errors. Also thanks for the link the the snapshot builds.

bjorn commented 8 years ago

I've fixed the problem with zlib when compiling against Qt 5.6 + MinGW in change 4c8a4b7a1a332c30bf7a24e1b3f5ec93012df70e.

bjorn commented 8 years ago

For me and on AppVeyor, Tiled is now compiling fine when using tiled.qbs with either Qt for MinGW (32-bit) or Qt for Visual Studio 2013 (32-bit and 64-bit), also when using Qt 5.6. Are you still having this "manifest could not be opened" issue?

deviousdaemon commented 8 years ago

Sorry for the late response, but yes I still can't build, even on a fresh install of windows. I've attached a pic to show the error I receive. tiled debug

bjorn commented 8 years ago

Did you clone Tiled into a directory called "Builds", or what is happening here?

Please paste the output from the compiler rather than the extracted issues.

deviousdaemon commented 8 years ago

Ok here is the full compile output, and no I just extracted the .zip file from github to a temp folder:

14:16:01: Running steps for project tiled...
compiling tiled.rc
compiling zoomable.cpp
compiling snaphelper.cpp
compiling languagemanager.cpp
compiling tilelayeritem.cpp
compiling objectselectionitem.cpp
compiling moc_tileanimationeditor.cpp
compiling moc_aboutdialog.cpp
compiling renameterrain.cpp
compiling filesystemwatcher.cpp
compiling layermodel.cpp
compiling moc_mapscene.cpp
C:/Qt/Tools/mingw530_32/bin/windres.exe -D NDEBUG -D UNICODE -D _UNICODE -D "TILED_VERSION=0.16.1" -D QT_NO_CAST_FROM_ASCII -D QT_NO_CAST_TO_ASCII -D QT_CORE_LIB -D QT_NO_DEBUG -D QT_GUI_LIB -D QT_NETWORK_LIB -D QT_OPENGL_LIB -D QT_WIDGETS_LIB -I "E:/Tiled Builds/src/tiled" -I C:/Qt/5.7/mingw53_32/include -I C:/Qt/5.7/mingw53_32/include/QtCore -I C:/Qt/5.7/mingw53_32/mkspecs/win32-g++ -I E:/build-tiled-Desktop_Qt_5_7_0_MinGW_32bit-Release/qtc_Desktop__cc5307a8-release/tiled.qtc-Desktop--cc5307a8.71721af6/GeneratedFiles -I C:/Qt/5.7/mingw53_32/include -I C:/Qt/5.7/mingw53_32/include/QtGui -I C:/Qt/5.7/mingw53_32/include/QtANGLE -I C:/Qt/5.7/mingw53_32/include -I C:/Qt/5.7/mingw53_32/include/QtNetwork -I C:/Qt/5.7/mingw53_32/include -I C:/Qt/5.7/mingw53_32/include/QtOpenGL -I C:/Qt/5.7/mingw53_32/include -I C:/Qt/5.7/mingw53_32/include/QtWidgets -I "E:/Tiled Builds/src/libtiled" -I "E:/Tiled Builds/src/qtpropertybrowser/src" -I "E:/Tiled Builds/src/qtsingleapplication/src" -i E:/build-tiled-Desktop_Qt_5_7_0_MinGW_32bit-Release/qtc_Desktop__cc5307a8-release/tiled.qtc-Desktop--cc5307a8.71721af6/GeneratedFiles/tiled.rc -o E:/build-tiled-Desktop_Qt_5_7_0_MinGW_32bit-Release/qtc_Desktop__cc5307a8-release/tiled.qtc-Desktop--cc5307a8.71721af6/.obj/39301be37a6f50b4/tiled_res.o
gcc: error: Builds/src/tiled: No such file or directory
gcc: error: Builds/src/libtiled: No such file or directory
gcc: error: Builds/src/qtpropertybrowser/src: No such file or directory
gcc: error: Builds/src/qtsingleapplication/src: No such file or directory
C:\Qt\Tools\mingw530_32\bin\windres.exe: preprocessing failed.
Process failed with exit code 1.
The following products could not be built for configuration qtc_Desktop__cc5307a8-release:
    automappingconverter
    tiled
    tmxrasterizer
    flare
    lua
Error while building/deploying project tiled (kit: Desktop Qt 5.7.0 MinGW 32bit)
When executing step "Qbs Build"
14:16:06: Elapsed time: 00:05.
bjorn commented 8 years ago

Ok, you're compiling with Qt 5.7, which I have not tested yet on Windows (Qt 5.7 is also not final yet). I have only just fixed things up to compile against Qt 5.6, and I would not be surprised if for some reason it won't compile with Qt 5.7, especially if you also throw in a much more recent version of MinGW (5.3) than I have used so far.

Unfortunately it is not immediately obvious to me what could be needed to get this windres.exe command to succeed.

For now, please stick with Qt 5.6 and MinGW 4.9.

deviousdaemon commented 8 years ago

Ok. I'm reinstalling QT 5.6 again. Will see if that fixes it.

EDIT:

Nope it still does not compile. Here is the output :

17:22:58: Running steps for project tiled...
moc pluginmanager.h
moc mapformat.h
moc logginginterface.h
moc plugin.h
moc qtsingleapplication.h
moc qtlocalpeer.h
Creating tiled_it.qm
Creating tiled_ar_DZ.qm
Creating tiled_es.qm
Creating tiled_de.qm
Creating tiled_zh_TW.qm
Creating tiled_cs.qm
Creating tiled_ru.qm
Creating tiled_bg.qm
Creating tiled_he.qm
Creating tiled_lv.qm
Creating tiled_pt_PT.qm
Creating tiled_pl.qm
Creating tiled_fr.qm
Creating tiled_en.qm
Creating tiled_ja.qm
compiling mapreader.cpp
compiling mapobject.cpp
compiling moc_logginginterface.cpp
compiling tilelayer.cpp
compiling hexagonalrenderer.cpp
compiling map.cpp
compiling imagereference.cpp
compiling tile.cpp
compiling tileset.cpp
compiling staggeredrenderer.cpp
compiling pluginmanager.cpp
compiling maptovariantconverter.cpp
compiling moc_pluginmanager.cpp
compiling properties.cpp
compiling moc_plugin.cpp
compiling mapwriter.cpp
compiling objectgroup.cpp
compiling plugin.cpp
compiling moc_mapformat.cpp
compiling isometricrenderer.cpp
compiling compression.cpp
compiling gidmapper.cpp
compiling imagelayer.cpp
compiling layer.cpp
compiling varianttomapconverter.cpp
compiling maprenderer.cpp
compiling tilesetformat.cpp
compiling orthogonalrenderer.cpp
compiling qtsingleapplication.cpp
compiling qtlocalpeer.cpp
compiling moc_qtsingleapplication.cpp
compiling moc_qtlocalpeer.cpp
Creating tiled_pt.qm
Creating tiled_nl.qm
Creating tiled_tr.qm
Creating tiled_zh.qm
Creating tiled_nb.qm
moc qtpropertymanager.h
moc qteditorfactory.h
moc qtvariantproperty.h
moc qtpropertybrowser.h
moc qtpropertybrowserutils_p.h
moc qtgroupboxpropertybrowser.h
moc qttreepropertybrowser.h
moc qtbuttonpropertybrowser.h
moc qteditorfactory.cpp
moc qtpropertymanager.cpp
precompiling pch.h (cpp)
moc qttreepropertybrowser.cpp
compiling moc_qtpropertybrowserutils_p.cpp
compiling qtvariantproperty.cpp
compiling qteditorfactory.cpp
compiling qtpropertymanager.cpp
compiling qtpropertybrowser.cpp
compiling qtbuttonpropertybrowser.cpp
compiling qtgroupboxpropertybrowser.cpp
compiling qttreepropertybrowser.cpp
compiling qtpropertybrowserutils.cpp
creating libqtsingleapplication.a
linking tiled.dll
moc jsonplugin.h
compiling main.cpp
compiling tmxrasterizer.cpp
compiling jsonplugin.cpp
compiling json.cpp
compiling moc_jsonplugin.cpp
rcc replicaisland.qrc
moc tengineplugin.h
moc replicaislandplugin.h
compiling tengineplugin.cpp
linking tmxrasterizer.exe
compiling moc_replicaislandplugin.cpp
compiling qrc_replicaisland.cpp
compiling replicaislandplugin.cpp
compiling moc_tengineplugin.cpp
moc flareplugin.h
compiling moc_flareplugin.cpp
compiling flareplugin.cpp
moc luaplugin.h
compiling moc_luaplugin.cpp
compiling luatablewriter.cpp
compiling luaplugin.cpp
moc csvplugin.h
compiling moc_csvplugin.cpp
linking json.dll
compiling csvplugin.cpp
moc tmxviewer.h
linking replicaisland.dll
rcc droidcraft.qrc
moc droidcraftplugin.h
compiling main.cpp
compiling tmxviewer.cpp
compiling moc_tmxviewer.cpp
compiling moc_droidcraftplugin.cpp
compiling droidcraftplugin.cpp
linking tengine.dll
compiling qrc_droidcraft.cpp
compiling main.cpp
linking flare.dll
moc tmwplugin.h
uic converterwindow.ui
moc converterdatamodel.h
compiling tmwplugin.cpp
compiling moc_tmwplugin.cpp
linking csv.dll
moc converterwindow.h
compiling convertercontrol.cpp
compiling converterdatamodel.cpp
compiling moc_converterdatamodel.cpp
linking lua.dll
compiling converterwindow.cpp
compiling main.cpp
linking tmxviewer.exe
linking droidcraft.dll
compiling moc_converterwindow.cpp
linking tmw.dll
creating libqtpropertybrowser.a
prepare tiled.rc
uic tileanimationeditor.ui
uic exportasimagedialog.ui
uic patreondialog.ui
uic mainwindow.ui
uic addpropertydialog.ui
uic offsetmapdialog.ui
uic resizedialog.ui
uic aboutdialog.ui
uic newmapdialog.ui
uic editterraindialog.ui
uic commanddialog.ui
uic texteditordialog.ui
uic newtilesetdialog.ui
uic objecttypeseditor.ui
uic preferencesdialog.ui
rcc tiled.qrc
moc documentmanager.h
moc minimapdock.h
moc tileselectiontool.h
moc tilesetdock.h
moc createscalableobjecttool.h
moc command.h
moc undodock.h
moc commanddialog.h
moc mapdocumentactionhandler.h
moc variantpropertymanager.h
moc clipboardmanager.h
moc minimap.h
moc tilestampmodel.h
moc brokenlinks.h
moc layeroffsettool.h
moc preferencesdialog.h
moc objectsdock.h
moc stampbrush.h
moc fileedit.h
moc createrectangleobjecttool.h
linking automappingconverter.exe
moc tilecollisioneditor.h
moc tileanimationeditor.cpp
moc toolmanager.h
moc aboutdialog.h
moc mainwindow.h
moc mapview.h
moc commanddatamodel.h
moc terrainmodel.h
moc tilesetmodel.h
moc exportasimagedialog.h
moc tilesetparametersedit.h
moc newtilesetdialog.h
moc varianteditorfactory.h
moc createobjecttool.h
moc abstracttool.h
moc flexiblescrollbar.h
moc colorbutton.h
moc mapscene.h
moc propertybrowser.h
moc createellipseobjecttool.h
moc eraser.h
moc magicwandtool.h
moc filesystemwatcher.h
moc tileanimationdriver.h
moc offsetmapdialog.h
linking terraingenerator.exe
moc terrainbrush.h
moc terraindock.h
moc texteditordialog.h
moc createmultipointobjecttool.h
moc createpolygonobjecttool.h
moc patreondialog.h
moc objectselectiontool.h
moc movabletabwidget.h
moc resizedialog.h
moc mapdocument.h
moc selectsametiletool.h
moc pluginlistmodel.h
moc tileselectionitem.h
moc varianteditorfactory.cpp
moc abstractobjecttool.h
moc commandbutton.h
moc tilesetmanager.h
moc editpolygontool.h
moc tileanimationeditor.h
moc terrainview.h
moc addpropertydialog.h
moc tmxmapformat.h
moc textpropertyedit.h
moc mapobjectmodel.h
moc propertiesdock.h
moc objecttypeseditor.h
moc tilesetview.h
moc resizehelper.h
moc consoledock.h
moc objecttypesmodel.h
moc automappingmanager.h
moc createpolylineobjecttool.h
moc newmapdialog.h
moc layerdock.h
moc editterraindialog.h
moc bucketfilltool.h
moc automapper.h
moc tilestampsdock.h
moc tiledapplication.h
moc zoomable.h
moc objectselectionitem.h
moc layermodel.h
moc mapsdock.h
moc preferences.h
moc tilestampmanager.h
moc abstracttiletool.h
moc createtileobjecttool.h
moc documentmanager.cpp
compiling tiled.rc
compiling moc_offsetmapdialog.cpp
compiling addremoveterrain.cpp
compiling moc_mainwindow.cpp
compiling layeroffsettool.cpp
compiling tilelayeritem.cpp
compiling automapper.cpp
compiling snaphelper.cpp
compiling moc_propertybrowser.cpp
compiling moc_texteditordialog.cpp
compiling moc_magicwandtool.cpp
compiling changepolygon.cpp
C:/Qt/Tools/mingw492_32/bin/windres.exe -D NDEBUG -D UNICODE -D _UNICODE -D "TILED_VERSION=0.16.1" -D QT_NO_CAST_FROM_ASCII -D QT_NO_CAST_TO_ASCII -D QT_CORE_LIB -D QT_NO_DEBUG -D QT_GUI_LIB -D QT_NETWORK_LIB -D QT_OPENGL_LIB -D QT_WIDGETS_LIB -I "E:/Tiled Builds/src/tiled" -I C:/Qt/5.6/mingw49_32/include -I C:/Qt/5.6/mingw49_32/include/QtCore -I C:/Qt/5.6/mingw49_32/mkspecs/win32-g++ -I E:/build-tiled-Desktop_Qt_5_6_1_MinGW_32bit2-Release/qtc_Desktop__195a8ed1-release/tiled.qtc-Desktop--195a8ed1.8d5a77ea/GeneratedFiles -I C:/Qt/5.6/mingw49_32/include -I C:/Qt/5.6/mingw49_32/include/QtGui -I C:/Qt/5.6/mingw49_32/include/QtANGLE -I C:/Qt/5.6/mingw49_32/include -I C:/Qt/5.6/mingw49_32/include/QtNetwork -I C:/Qt/5.6/mingw49_32/include -I C:/Qt/5.6/mingw49_32/include/QtOpenGL -I C:/Qt/5.6/mingw49_32/include -I C:/Qt/5.6/mingw49_32/include/QtWidgets -I "E:/Tiled Builds/src/libtiled" -I "E:/Tiled Builds/src/qtpropertybrowser/src" -I "E:/Tiled Builds/src/qtsingleapplication/src" -i E:/build-tiled-Desktop_Qt_5_6_1_MinGW_32bit2-Release/qtc_Desktop__195a8ed1-release/tiled.qtc-Desktop--195a8ed1.8d5a77ea/GeneratedFiles/tiled.rc -o E:/build-tiled-Desktop_Qt_5_6_1_MinGW_32bit2-Release/qtc_Desktop__195a8ed1-release/tiled.qtc-Desktop--195a8ed1.8d5a77ea/.obj/39301be37a6f50b4/tiled_res.o
gcc: error: Builds/src/tiled: No such file or directory
gcc: error: Builds/src/libtiled: No such file or directory
gcc: error: Builds/src/qtpropertybrowser/src: No such file or directory
gcc: error: Builds/src/qtsingleapplication/src: No such file or directory
C:\Qt\Tools\mingw492_32\bin\windres.exe: preprocessing failed.
Process failed with exit code 1.
The following products could not be built for configuration qtc_Desktop__195a8ed1-release:
    tiled
Error while building/deploying project tiled (kit: Desktop Qt 5.6.1 MinGW 32bit2)
When executing step "Qbs Build"
17:23:17: Elapsed time: 00:20.
bjorn commented 8 years ago

Ok, I just noticed the path you're using to compile Tiled in is "E:/Tiled Builds/src/tiled", and judging by the error messages, it cut off part of that path. Apparently, some tool is having trouble dealing correctly with spaces in paths (I'm guessing windres.exe, since it seems Qbs quoted things correctly and I'm sure gcc would generally deal with this fine too).

So, please extract Tiled sources to a path without spaces, then the build should really work fine.

hassandraga commented 6 years ago

I have the same issue with windres, version GNU windres (GNU Binutils) 2.28 (2017)

bjorn commented 6 years ago

@hassandraga Then please make sure you don't check out Tiled in a path that contains spaces.

bjorn commented 5 years ago

I just tested this with Qbs 1.13 and MinGW 7.3, but unfortunately it's still an issue.