-
Notifications
You must be signed in to change notification settings - Fork 22
Open
Description
How to reproduce:
- Clone HarbourMasters/Shipwright
- Configure this CMake project inside a path that contains whitespace, for me it was
C:\Users\Firstname LastName\source\repos\koplas\Shipwright - Linking fails
>------ Build started: Project: CMakeLists, Configuration: Debug ------
[1/2] Linking CXX executable ZAPD\ZAPD.exe
FAILED: ZAPD/ZAPD.exe
C:\Windows\system32\cmd.exe /C "cd . && "C:\Program Files\Microsoft Visual Studio\18\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe" -E vs_link_exe --msvc-ver=1950 --intdir=ZAPD\CMakeFiles\ZAPD.dir --rc=C:\PROGRA~2\WI3CF2~1\10\bin\100261~1.0\x64\rc.exe --mt=C:\PROGRA~2\WI3CF2~1\10\bin\100261~1.0\x64\mt.exe --manifests -- C:\PROGRA~1\MICROS~1\18\COMMUN~1\VC\Tools\MSVC\1450~1.357\bin\Hostx64\x64\link.exe /nologo ZAPD\CMakeFiles\ZAPD.dir\ExecutableMain.cpp.obj /out:ZAPD\ZAPD.exe /implib:ZAPD\ZAPD.lib /pdb:ZAPD\ZAPD.pdb /version:0.0 /machine:x64 /debug /INCREMENTAL /subsystem:console ZAPD\ZAPDLib.lib -WHOLEARCHIVE:C:/Users/Paul Schwabauer/source/repos/koplas/Shipwright/x64/Debug/OTRExporter.lib libultraship\src\libultraship.lib libultraship\ImGui.lib vcpkg\installed\x64-windows-static\debug\lib\SDL2-staticd.lib kernel32.lib user32.lib gdi32.lib winmm.lib imm32.lib ole32.lib oleaut32.lib version.lib uuid.lib setupapi.lib dinput8.lib vcpkg\installed\x64-windows-static\debug\lib\manual-link\SDL2maind.lib shell32.lib vcpkg\installed\x64-windows-static\debug\lib\libglew32d.lib opengl32.lib libultraship\stb.lib libultraship\libgfxd.lib vcpkg\installed\x64-windows-static\debug\lib\zip.lib advapi32.lib vcpkg\installed\x64-windows-static\debug\lib\bz2d.lib bcrypt.lib vcpkg\installed\x64-windows-static\debug\lib\zlibd.lib vcpkg\installed\x64-windows-static\debug\lib\tinyxml2.lib vcpkg\installed\x64-windows-static\debug\lib\spdlogd.lib vcpkg\installed\x64-windows-static\debug\lib\fmtd.lib _deps\prism-build\prism.lib vcpkg\installed\x64-windows-static\debug\lib\spdlogd.lib vcpkg\installed\x64-windows-static\debug\lib\fmtd.lib _deps\stormlib-build\StormLib.lib vcpkg\installed\x64-windows-static\debug\lib\zlibd.lib vcpkg\installed\x64-windows-static\debug\lib\bz2d.lib wininet.lib vcpkg\installed\x64-windows-static\debug\lib\libpng16d.lib vcpkg\installed\x64-windows-static\debug\lib\zlibd.lib kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib && C:\Windows\system32\cmd.exe /C "cd /D "C:\Users\Paul Schwabauer\source\repos\koplas\Shipwright\out\build\x64-Debug\ZAPD" && C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -noprofile -executionpolicy Bypass -file "C:/Users/Paul Schwabauer/source/repos/koplas/Shipwright/out/build/x64-Debug/vcpkg/scripts/buildsystems/msbuild/applocal.ps1" -targetBinary "C:/Users/Paul Schwabauer/source/repos/koplas/Shipwright/out/build/x64-Debug/ZAPD/ZAPD.exe" -installedDir "C:/Users/Paul Schwabauer/source/repos/koplas/Shipwright/out/build/x64-Debug/vcpkg/installed/x64-windows-static/debug/bin" -OutVariable out""
LINK Pass 1: command "C:\PROGRA~1\MICROS~1\18\COMMUN~1\VC\Tools\MSVC\1450~1.357\bin\Hostx64\x64\link.exe /nologo ZAPD\CMakeFiles\ZAPD.dir\ExecutableMain.cpp.obj /out:ZAPD\ZAPD.exe /implib:ZAPD\ZAPD.lib /pdb:ZAPD\ZAPD.pdb /version:0.0 /machine:x64 /debug /INCREMENTAL /subsystem:console ZAPD\ZAPDLib.lib -WHOLEARCHIVE:C:/Users/Paul Schwabauer/source/repos/koplas/Shipwright/x64/Debug/OTRExporter.lib libultraship\src\libultraship.lib libultraship\ImGui.lib vcpkg\installed\x64-windows-static\debug\lib\SDL2-staticd.lib kernel32.lib user32.lib gdi32.lib winmm.lib imm32.lib ole32.lib oleaut32.lib version.lib uuid.lib setupapi.lib dinput8.lib vcpkg\installed\x64-windows-static\debug\lib\manual-link\SDL2maind.lib shell32.lib vcpkg\installed\x64-windows-static\debug\lib\libglew32d.lib opengl32.lib libultraship\stb.lib libultraship\libgfxd.lib vcpkg\installed\x64-windows-static\debug\lib\zip.lib advapi32.lib vcpkg\installed\x64-windows-static\debug\lib\bz2d.lib bcrypt.lib vcpkg\installed\x64-windows-static\debug\lib\zlibd.lib vcpkg\installed\x64-windows-static\debug\lib\tinyxml2.lib vcpkg\installed\x64-windows-static\debug\lib\spdlogd.lib vcpkg\installed\x64-windows-static\debug\lib\fmtd.lib _deps\prism-build\prism.lib vcpkg\installed\x64-windows-static\debug\lib\spdlogd.lib vcpkg\installed\x64-windows-static\debug\lib\fmtd.lib _deps\stormlib-build\StormLib.lib vcpkg\installed\x64-windows-static\debug\lib\zlibd.lib vcpkg\installed\x64-windows-static\debug\lib\bz2d.lib wininet.lib vcpkg\installed\x64-windows-static\debug\lib\libpng16d.lib vcpkg\installed\x64-windows-static\debug\lib\zlibd.lib kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib /MANIFEST /MANIFESTFILE:ZAPD\CMakeFiles\ZAPD.dir/intermediate.manifest ZAPD\CMakeFiles\ZAPD.dir/manifest.res" failed (exit code 1104) with the following output:
C:\Users\Paul Schwabauer\source\repos\koplas\Shipwright\out\build\x64-Debug\LINK : fatal error LNK1104: cannot open file 'Schwabauer\source\repos\koplas\Shipwright\x64\Debug\OTRExporter.lib'
[2/2] Linking CXX executable "C:\Users\Paul Schwabauer\source\repos\koplas\Shipwright\x64\Debug\soh.exe"; Copying asset xmls...
FAILED: C:/Users/Paul Schwabauer/source/repos/koplas/Shipwright/x64/Debug/soh.exe
C:\Windows\system32\cmd.exe /C "cd . && "C:\Program Files\Microsoft Visual Studio\18\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe" -E vs_link_exe --msvc-ver=1950 --intdir=soh\CMakeFiles\soh.dir --rc=C:\PROGRA~2\WI3CF2~1\10\bin\100261~1.0\x64\rc.exe --mt=C:\PROGRA~2\WI3CF2~1\10\bin\100261~1.0\x64\mt.exe --manifests -- C:\PROGRA~1\MICROS~1\18\COMMUN~1\VC\Tools\MSVC\1450~1.357\bin\Hostx64\x64\link.exe /nologo @CMakeFiles\soh.rsp /out:"C:\Users\Paul Schwabauer\source\repos\koplas\Shipwright\x64\Debug\soh.exe" /implib:"C:\Users\Paul Schwabauer\source\repos\koplas\Shipwright\x64\Debug\soh.lib" /pdb:"C:\Users\Paul Schwabauer\source\repos\koplas\Shipwright\x64\Debug\soh.pdb" /version:0.0 /subsystem:console /INCREMENTAL /MANIFEST:NO /DEBUG /SUBSYSTEM:WINDOWS && C:\Windows\system32\cmd.exe /C "cd /D "C:\Users\Paul Schwabauer\source\repos\koplas\Shipwright\out\build\x64-Debug\soh" && C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -noprofile -executionpolicy Bypass -file "C:/Users/Paul Schwabauer/source/repos/koplas/Shipwright/out/build/x64-Debug/vcpkg/scripts/buildsystems/msbuild/applocal.ps1" -targetBinary "C:/Users/Paul Schwabauer/source/repos/koplas/Shipwright/x64/Debug/soh.exe" -installedDir "C:/Users/Paul Schwabauer/source/repos/koplas/Shipwright/out/build/x64-Debug/vcpkg/installed/x64-windows-static/debug/bin" -OutVariable out && cd /D "C:\Users\Paul Schwabauer\source\repos\koplas\Shipwright\out\build\x64-Debug\soh" && "C:\Program Files\Microsoft Visual Studio\18\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe" -E copy_directory_if_different "C:/Users/Paul Schwabauer/source/repos/koplas/Shipwright/soh/assets/extractor" "C:/Users/Paul Schwabauer/source/repos/koplas/Shipwright/x64/Debug/assets" && "C:\Program Files\Microsoft Visual Studio\18\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe" -E copy_directory_if_different "C:/Users/Paul Schwabauer/source/repos/koplas/Shipwright/soh/assets/xml" "C:/Users/Paul Schwabauer/source/repos/koplas/Shipwright/x64/Debug/assets/xml" && "C:\Program Files\Microsoft Visual Studio\18\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe" -E make_directory "C:/Users/Paul Schwabauer/source/repos/koplas/Shipwright/x64/Debug/assets/symbols"""
LINK: command "C:\PROGRA~1\MICROS~1\18\COMMUN~1\VC\Tools\MSVC\1450~1.357\bin\Hostx64\x64\link.exe /nologo @CMakeFiles\soh.rsp /out:C:\Users\Paul Schwabauer\source\repos\koplas\Shipwright\x64\Debug\soh.exe /implib:C:\Users\Paul Schwabauer\source\repos\koplas\Shipwright\x64\Debug\soh.lib /pdb:C:\Users\Paul Schwabauer\source\repos\koplas\Shipwright\x64\Debug\soh.pdb /version:0.0 /subsystem:console /INCREMENTAL /MANIFEST:NO /DEBUG /SUBSYSTEM:WINDOWS" failed (exit code 1104) with the following output:
C:\Users\Paul Schwabauer\source\repos\koplas\Shipwright\out\build\x64-Debug\LINK : fatal error LNK1104: cannot open file 'Schwabauer\source\repos\koplas\Shipwright\x64\Debug\OTRExporter.lib'
ninja: build stopped: subcommand failed.
Build failed.
To fix apply this patch:
diff --git a/ZAPD/CMakeLists.txt b/ZAPD/CMakeLists.txt
index ab7ab7e..726144f 100644
--- a/ZAPD/CMakeLists.txt
+++ b/ZAPD/CMakeLists.txt
@@ -447,7 +447,7 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
# if("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64")
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
set(ADDITIONAL_LIBRARY_DEPENDENCIES
- "-WHOLEARCHIVE:$<TARGET_LINKER_FILE_DIR:OTRExporter>/$<TARGET_LINKER_FILE_NAME:OTRExporter>"
+ "-WHOLEARCHIVE:\"$<TARGET_FILE:OTRExporter>\""
"libultraship;"
storm
PNG::PNGMetadata
Metadata
Assignees
Labels
No labels