UnleashedRecomp icon indicating copy to clipboard operation
UnleashedRecomp copied to clipboard

Fails to build on Linux x64

Open coreybruce opened this issue 9 months ago • 3 comments

Fails to build on Manjaro x64

cmake . --preset linux-release                                                                                                                          1 ✘ 
Preset CMake variables:

  CMAKE_BUILD_TYPE="Release"
  CMAKE_INSTALL_PREFIX:PATH="/home/corey/Stuff/projects/UnleashedRecomp/out/install/linux-release"
  CMAKE_INTERPROCEDURAL_OPTIMIZATION:BOOL="TRUE"
  CMAKE_TOOLCHAIN_FILE:FILEPATH="/home/corey/Stuff/projects/UnleashedRecomp/thirdparty/vcpkg/scripts/buildsystems/vcpkg.cmake"
  VCPKG_CHAINLOAD_TOOLCHAIN_FILE="/home/corey/Stuff/projects/UnleashedRecomp/toolchains/linux-clang.cmake"
  VCPKG_TARGET_TRIPLET:STRING="x64-linux"

Preset environment variables:

  VCPKG_ROOT="/home/corey/Stuff/projects/UnleashedRecomp/thirdparty/vcpkg"

-- Running vcpkg install
Detecting compiler hash for triplet x64-linux...
Compiler found: /usr/bin/c++
All requested packages are currently installed.
Total install time: 2.31 us
curl is compatible with built-in CMake targets:

    find_package(CURL REQUIRED)
    target_link_libraries(main PRIVATE CURL::libcurl)

The DirectX Shader Compiler package provides CMake targets:

    find_package(directx-dxc CONFIG REQUIRED)
    target_link_libraries(main PRIVATE Microsoft::DirectXShaderCompiler)

The CMake variable DIRECTX_DXC_TOOL is also set to point to the appropriate DXC command-line tool.

freetype is compatible with built-in CMake targets:

    find_package(Freetype REQUIRED)
    target_link_libraries(main PRIVATE Freetype::Freetype) # since CMake 3.10

-- Running vcpkg install - done
-- The CXX compiler identification is unknown
CMake Error at thirdparty/msdf-atlas-gen/CMakeLists.txt:76 (project):
  The CMAKE_CXX_COMPILER:

    clang++

  is not a full path and was not found in the PATH.

  Tell CMake where to find the compiler by setting either the environment
  variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full path
  to the compiler, or to the compiler name if it is in the PATH.


-- Configuring incomplete, errors occurred!
    ~/Stuff/projects/UnleashedRecomp    main  cmake . --preset linux-release                                                                                                                          1 ✘ 
Preset CMake variables:

  CMAKE_BUILD_TYPE="Release"
  CMAKE_INSTALL_PREFIX:PATH="/home/corey/Stuff/projects/UnleashedRecomp/out/install/linux-release"
  CMAKE_INTERPROCEDURAL_OPTIMIZATION:BOOL="TRUE"
  CMAKE_TOOLCHAIN_FILE:FILEPATH="/home/corey/Stuff/projects/UnleashedRecomp/thirdparty/vcpkg/scripts/buildsystems/vcpkg.cmake"
  VCPKG_CHAINLOAD_TOOLCHAIN_FILE="/home/corey/Stuff/projects/UnleashedRecomp/toolchains/linux-clang.cmake"
  VCPKG_TARGET_TRIPLET:STRING="x64-linux"

Preset environment variables:

  VCPKG_ROOT="/home/corey/Stuff/projects/UnleashedRecomp/thirdparty/vcpkg"

-- Running vcpkg install
Detecting compiler hash for triplet x64-linux...
Compiler found: /usr/bin/c++
All requested packages are currently installed.
Total install time: 1.4 us
curl is compatible with built-in CMake targets:

    find_package(CURL REQUIRED)
    target_link_libraries(main PRIVATE CURL::libcurl)

The DirectX Shader Compiler package provides CMake targets:

    find_package(directx-dxc CONFIG REQUIRED)
    target_link_libraries(main PRIVATE Microsoft::DirectXShaderCompiler)

The CMake variable DIRECTX_DXC_TOOL is also set to point to the appropriate DXC command-line tool.

freetype is compatible with built-in CMake targets:

    find_package(Freetype REQUIRED)
    target_link_libraries(main PRIVATE Freetype::Freetype) # since CMake 3.10

-- Running vcpkg install - done
-- The CXX compiler identification is unknown
CMake Error at thirdparty/msdf-atlas-gen/CMakeLists.txt:76 (project):
  The CMAKE_CXX_COMPILER:

    clang++

  is not a full path and was not found in the PATH.

  Tell CMake where to find the compiler by setting either the environment
  variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full path
  to the compiler, or to the compiler name if it is in the PATH.


-- Configuring incomplete, errors occurred!

Tells me I don't have a full path and was not found in the PATH. when following the documentation for Linux

coreybruce avatar Mar 04 '25 03:03 coreybruce

It looks like you haven't installed Clang... It's required.

  The CMAKE_CXX_COMPILER:

    clang++

  is not a full path and was not found in the PATH.

ThisNekoGuy avatar Mar 04 '25 05:03 ThisNekoGuy

It looks like you haven't installed Clang... It's required.

  The CMAKE_CXX_COMPILER:

    clang++

  is not a full path and was not found in the PATH.

Ahh woops my bad! I've installed clang but the simple test program failed to compile

cmake . --preset linux-release 
Preset CMake variables:

  CMAKE_BUILD_TYPE="Release"
  CMAKE_INSTALL_PREFIX:PATH="/home/corey/Stuff/projects/UnleashedRecomp/out/install/linux-release"
  CMAKE_INTERPROCEDURAL_OPTIMIZATION:BOOL="TRUE"
  CMAKE_TOOLCHAIN_FILE:FILEPATH="/home/corey/Stuff/projects/UnleashedRecomp/thirdparty/vcpkg/scripts/buildsystems/vcpkg.cmake"
  VCPKG_CHAINLOAD_TOOLCHAIN_FILE="/home/corey/Stuff/projects/UnleashedRecomp/toolchains/linux-clang.cmake"
  VCPKG_TARGET_TRIPLET:STRING="x64-linux"

Preset environment variables:

  VCPKG_ROOT="/home/corey/Stuff/projects/UnleashedRecomp/thirdparty/vcpkg"

-- Running vcpkg install
Detecting compiler hash for triplet x64-linux...
Compiler found: /usr/bin/c++
All requested packages are currently installed.
Total install time: 1.89 us
curl is compatible with built-in CMake targets:

    find_package(CURL REQUIRED)
    target_link_libraries(main PRIVATE CURL::libcurl)

The DirectX Shader Compiler package provides CMake targets:

    find_package(directx-dxc CONFIG REQUIRED)
    target_link_libraries(main PRIVATE Microsoft::DirectXShaderCompiler)

The CMake variable DIRECTX_DXC_TOOL is also set to point to the appropriate DXC command-line tool.

freetype is compatible with built-in CMake targets:

    find_package(Freetype REQUIRED)
    target_link_libraries(main PRIVATE Freetype::Freetype) # since CMake 3.10

-- Running vcpkg install - done
-- The CXX compiler identification is Clang 19.1.7
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - failed
-- Check for working CXX compiler: /usr/bin/clang++
-- Check for working CXX compiler: /usr/bin/clang++ - broken
CMake Error at /usr/share/cmake/Modules/CMakeTestCXXCompiler.cmake:73 (message):
  The C++ compiler

    "/usr/bin/clang++"

  is not able to compile a simple test program.

  It fails with the following output:

    Change Dir: '/home/corey/Stuff/projects/UnleashedRecomp/out/build/linux-release/CMakeFiles/CMakeScratch/TryCompile-o0FhoP'
    
    Run Build Command(s): /usr/bin/ninja -v cmTC_ec2c8
    [1/2] /usr/bin/clang++   -fPIC  -std=gnu++20 -MD -MT CMakeFiles/cmTC_ec2c8.dir/testCXXCompiler.cxx.o -MF CMakeFiles/cmTC_ec2c8.dir/testCXXCompiler.cxx.o.d -o CMakeFiles/cmTC_ec2c8.dir/testCXXCompiler.cxx.o -c /home/corey/Stuff/projects/UnleashedRecomp/out/build/linux-release/CMakeFiles/CMakeScratch/TryCompile-o0FhoP/testCXXCompiler.cxx
    [2/2] : && /usr/bin/clang++ -fPIC -fuse-ld=lld CMakeFiles/cmTC_ec2c8.dir/testCXXCompiler.cxx.o -o cmTC_ec2c8   && :
    FAILED: cmTC_ec2c8 
    : && /usr/bin/clang++ -fPIC -fuse-ld=lld CMakeFiles/cmTC_ec2c8.dir/testCXXCompiler.cxx.o -o cmTC_ec2c8   && :
    clang++: error: invalid linker name in argument '-fuse-ld=lld'
    ninja: build stopped: subcommand failed.
    
    

  

  CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
  thirdparty/msdf-atlas-gen/CMakeLists.txt:76 (project)


-- Configuring incomplete, errors occurred!

coreybruce avatar Mar 04 '25 06:03 coreybruce

You most likely need to install lld too; double check if it's installed

ThisNekoGuy avatar Mar 04 '25 14:03 ThisNekoGuy

Were you able to solve this?

DarioSamo avatar Mar 05 '25 22:03 DarioSamo

Sorry for the delay, been busy with my studies. Yep also thanks for updating the readme and adding the dependencies for Arch Linux 😃

With the build instructions I have done cmake . --preset linux-release but did I need to do cmake . --preset linux-release next? and where does the binary location once built?

coreybruce avatar Mar 06 '25 00:03 coreybruce

The output directory is specified during the building step.

Closing since this seems solved.

DarioSamo avatar Mar 20 '25 17:03 DarioSamo