• ubuntu22.04编译PBRT-v4


    报错:

    1. 执行Cmake

    cmake ../

    :
    -- The CXX compiler identification is GNU 11.2.0
    -- The C compiler identification is GNU 11.2.0
    -- Detecting CXX compiler ABI info
    -- Detecting CXX compiler ABI info - done
    -- Check for working CXX compiler: /usr/bin/c++ - skipped
    -- Detecting CXX compile features
    -- Detecting CXX compile features - done
    -- Detecting C compiler ABI info
    -- Detecting C compiler ABI info - done
    -- Check for working C compiler: /usr/bin/cc - skipped
    -- Detecting C compile features
    -- Detecting C compile features - done
    -- Setting build type to 'Release' as none was specified.
    -- Found Git: /usr/bin/git (found version "2.34.1")
    -- OpenEXR at commit: 5cfb5dab6dfada731586b0281bdb15ee75e26782
    -- OpenVDB at commit: 414bed84c2fc22e188eac7b611aa85c7edd7a5a9
    -- Ptex at commit: 4cd8e9a6db2b06e478dfbbd8c26eb6df97f84483
    -- double-conversion at commit: cc1f75a114aca8d2af69f73a5a959aecbab0e87a
    -- filesystem at commit: c5f9de30142453eb3c6fe991e82dfc2583373116
    -- glfw at commit: 4cb36872a5fe448c205d0b46f0e8c8b57530cfe0
    -- libdeflate at commit: 1fd0bea6ca2073c68493632dafc4b1ddda1bcbc3
    -- lodepng at commit: 8c6a9e30576f07bf470ad6f09458a2dcd7a6a84a
    -- qoi at commit: 028c75fd26e5e0758c7c711216c00404994c1ad3
    -- stb at commit: af1a5bc352164740c1cc1354942b1c6b72eacb8a
    -- utf8proc at commit: 2484e2ed5e1d9c19edcccf392a7d9920ad90dfaf
    -- zlib at commit: 54d591eabf9fe0e84c725638f8d5d8d202a093fa
    -- Performing Test CMAKE_HAVE_LIBC_PTHREAD
    -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
    -- Found Threads: TRUE  
    CMake Error at /snap/cmake/1153/share/cmake-3.24/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
      Could NOT find OpenGL (missing: OPENGL_opengl_LIBRARY OPENGL_glx_LIBRARY
      OPENGL_INCLUDE_DIR)
    Call Stack (most recent call first):
      /snap/cmake/1153/share/cmake-3.24/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)
      /snap/cmake/1153/share/cmake-3.24/Modules/FindOpenGL.cmake:443 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
      CMakeLists.txt:79 (find_package)


    -- Configuring incomplete, errors occurred!

    解决方法:

    sudo apt-get install libgl1-mesa-dev

    2. 再次 执行Cmake

    cmake ../

    -- OpenEXR at commit: 5cfb5dab6dfada731586b0281bdb15ee75e26782
    -- OpenVDB at commit: 414bed84c2fc22e188eac7b611aa85c7edd7a5a9
    -- Ptex at commit: 4cd8e9a6db2b06e478dfbbd8c26eb6df97f84483
    -- double-conversion at commit: cc1f75a114aca8d2af69f73a5a959aecbab0e87a
    -- filesystem at commit: c5f9de30142453eb3c6fe991e82dfc2583373116
    -- glfw at commit: 4cb36872a5fe448c205d0b46f0e8c8b57530cfe0
    -- libdeflate at commit: 1fd0bea6ca2073c68493632dafc4b1ddda1bcbc3
    -- lodepng at commit: 8c6a9e30576f07bf470ad6f09458a2dcd7a6a84a
    -- qoi at commit: 028c75fd26e5e0758c7c711216c00404994c1ad3
    -- stb at commit: af1a5bc352164740c1cc1354942b1c6b72eacb8a
    -- utf8proc at commit: 2484e2ed5e1d9c19edcccf392a7d9920ad90dfaf
    -- zlib at commit: 54d591eabf9fe0e84c725638f8d5d8d202a093fa
    -- Found OpenGL: /usr/lib/x86_64-linux-gnu/libOpenGL.so   
    -- The ASM compiler identification is GNU
    -- Found assembler: /usr/bin/cc
    CMake Warning (dev) at src/ext/libdeflate/CMakeLists.txt:12 (option):
      Policy CMP0077 is not set: option() honors normal variables.  Run "cmake
      --help-policy CMP0077" for policy details.  Use the cmake_policy command to
      set the policy and suppress this warning.

      For compatibility with older versions of CMake, option is clearing the
      normal variable 'BUILD_SHARED_LIBS'.
    This warning is for project developers.  Use -Wno-dev to suppress it.

    -- Performing Test DEFLATE_LINT_WALL
    -- Performing Test DEFLATE_LINT_WALL - Success
    -- Performing Test DEFLATE_LINT_WUNDEF
    -- Performing Test DEFLATE_LINT_WUNDEF - Success
    -- Performing Test DEFLATE_LINT_PEDANTIC
    -- Performing Test DEFLATE_LINT_PEDANTIC - Success
    -- Performing Test DEFLATE_LINT_DECLARATION_AFTER_STATEMENT
    -- Performing Test DEFLATE_LINT_DECLARATION_AFTER_STATEMENT - Success
    -- Performing Test DEFLATE_LINT_MISSING_PROTOTYPES
    -- Performing Test DEFLATE_LINT_MISSING_PROTOTYPES - Success
    -- Performing Test DEFLATE_LINT_STRICT_PROTOTYPES
    -- Performing Test DEFLATE_LINT_STRICT_PROTOTYPES - Success
    -- Performing Test DEFLATE_LINT_VLA
    -- Performing Test DEFLATE_LINT_VLA - Success
    -- Performing Test DEFLATE_LINT_IMPLICIT_FALLTHROUGH
    -- Performing Test DEFLATE_LINT_IMPLICIT_FALLTHROUGH - Success
    -- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found version "1.2.11")
    -- Could NOT find Imath (missing: Imath_DIR)
    -- Could NOT find IlmBase (missing: IlmBase_DIR)
    -- Could NOT find OpenEXR (missing: OpenEXR_DIR)

    -- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.2")
    -- Could NOT find OpenEXR: Found unsuitable version "1.6.1", but required is at least "2.3" (found ILMBASE_INCLUDE_PATH-NOTFOUND)
    -- OpenEXR not found; building it from scratch.
    -- Configure ILMBASE Version: 2.5.3 Lib API: 25.0.2
    -- Looking for include file ucontext.h
    -- Looking for include file ucontext.h - found
    -- Performing Test ILMBASE_HAVE_CONTROL_REGISTER_SUPPORT
    -- Performing Test ILMBASE_HAVE_CONTROL_REGISTER_SUPPORT - Success
    -- Looking for include file semaphore.h
    -- Looking for include file semaphore.h - found
    -- Looking for sem_init in pthread
    -- Looking for sem_init in pthread - found
    -- Configure OpenEXR Version: 2.5.3 Lib API: 25.0.2
    -- Performing Test OPENEXR_IMF_HAVE_SYSCONF_NPROCESSORS_ONLN
    -- Performing Test OPENEXR_IMF_HAVE_SYSCONF_NPROCESSORS_ONLN - Success
    -- Performing Test OPENEXR_IMF_HAVE_GCC_INLINE_ASM_AVX
    -- Performing Test OPENEXR_IMF_HAVE_GCC_INLINE_ASM_AVX - Success
    -- clang-format not found.
    CMake Deprecation Warning at src/ext/ptex/CMakeLists.txt:1 (cmake_minimum_required):
      Compatibility with CMake < 2.8.12 will be removed from a future version of
      CMake.

      Update the VERSION argument value or use a ... suffix to tell
      CMake that the project does not need compatibility with older versions.


    -- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
    -- Including X11 support
    -- Found X11: /usr/include   
    -- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so
    -- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so - found
    -- Looking for gethostbyname
    -- Looking for gethostbyname - found
    -- Looking for connect
    -- Looking for connect - found
    -- Looking for remove
    -- Looking for remove - found
    -- Looking for shmat
    -- Looking for shmat - found
    CMake Error at src/ext/glfw/src/CMakeLists.txt:192 (message):
      RandR headers not found; install libxrandr development package


    -- Configuring incomplete, errors occurred!
    See also "/media/liusheng/Projects/projects/game_engines/pbrt/mmp/pbrt-v4/2022/20220818/build_ubuntu_22.04/CMakeFiles/CMakeOutput.log".

    解决方法:

    安装libxrandr-dev

    apt-get install libxrandr-dev doxygen clang libopenexr-dev

    3.

    -- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
    -- Including X11 support
    CMake Error at src/ext/glfw/src/CMakeLists.txt:210 (message):
      Xcursor headers not found; install libxcursor development package

    解决:

    apt-get install libxcursor-dev

    4.

    CMake Error at src/ext/glfw/src/CMakeLists.txt:216 (message):
      XInput headers not found; install libxi development package

    解决:

    apt-get install libxi-dev

    5.

    Unable to find -lprofiler

    6.

    -- CUDA not found

    解决:

    CMakeLists.txt, 21行加入:

    set (CMAKE_CUDA_COMPILER $ENV{CUDA_HOME}/bin/nvcc)

    #( PS : $ENV{CUDA_HOME}/bin)的值为/usr/local/cuda/bin)

    /etc/profile:

    export CUDA_HOME=/usr/local/cuda

    export PATH=${CUDA_HOME}/bin:$PATH

    7.

    -- Including X11 support
    -- Unable to find -lprofiler
    -- Found CUDA: 11.7.99
    CMake Warning at CMakeLists.txt:186 (message):
      Found CUDA but PBRT_OPTIX7_PATH is not set.  Disabling GPU compilation.

    解决:

    /etc/profile:

    export PBRT_OPTIX7_PATH=/opt/nvidia/optix/NVIDIA-OptiX-SDK-7.5.0-linux64-x86_64

    export PATH=${PBRT_OPTIX7_PATH}:${CUDA_HOME}/bin:$PATH

    8.

    CMake Error at /snap/cmake/1153/share/cmake-3.24/Modules/CMakeDetermineCUDACompiler.cmake:277 (message):

    CMAKE_CUDA_ARCHITECTURES must be non-empty if set.

    Call Stack (most recent call first):

    CMakeLists.txt:194 (enable_language)

    解决:

    build目录下:

    rm -r * 全部删除

    重新执行cmake .. 解决!

    ------------------------------------------------------------------------------------------------------------------------------

    make -j8

    通过:


    [ 79%] Building CUDA object CMakeFiles/pbrt_lib.dir/src/pbrt/gpu/memory.cpp.o
    [ 80%] Building CUDA object CMakeFiles/pbrt_lib.dir/src/pbrt/gpu/util.cpp.o
    [ 80%] Building CXX object CMakeFiles/pbrt_lib.dir/src/ext/gtest/gtest-all.cc.o
    [ 81%] Building CXX object CMakeFiles/pbrt_lib.dir/src/ext/lodepng/lodepng.cpp.o
    [ 81%] Building CXX object CMakeFiles/pbrt_lib.dir/src/ext/rply/rply.cpp.o
    [ 82%] Linking CUDA device code CMakeFiles/pbrt_lib.dir/cmake_device_link.o
    nvlink warning : Skipping incompatible '/usr/lib/x86_64-linux-gnu/librt.a' when searching for -lrt
    nvlink warning : Skipping incompatible '/lib/x86_64-linux-gnu/librt.a' when searching for -lrt
    nvlink warning : Skipping incompatible '/usr/lib/x86_64-linux-gnu/libpthread.a' when searching for -lpthread
    nvlink warning : Skipping incompatible '/lib/x86_64-linux-gnu/libpthread.a' when searching for -lpthread
    nvlink warning : Skipping incompatible '/usr/lib/x86_64-linux-gnu/libdl.a' when searching for -ldl
    nvlink warning : Skipping incompatible '/lib/x86_64-linux-gnu/libdl.a' when searching for -ldl
    [ 82%] Linking CXX static library libpbrt_lib.a
    [ 83%] Built target pbrt_lib
    [ 83%] Building CXX object CMakeFiles/pbrt_exe.dir/src/pbrt/cmd/pbrt.cpp.o
    [ 83%] Building CXX object CMakeFiles/imgtool.dir/src/pbrt/cmd/imgtool.cpp.o
    [ 84%] Building CXX object CMakeFiles/pspec.dir/src/pbrt/cmd/pspec.cpp.o
    [ 85%] Building CXX object CMakeFiles/plytool.dir/src/pbrt/cmd/plytool.cpp.o
    [ 85%] Building CXX object CMakeFiles/pbrt_test.dir/src/pbrt/cmd/pbrt_test.cpp.o
    [ 86%] Building CXX object CMakeFiles/pbrt_test.dir/src/pbrt/bsdfs_test.cpp.o
    [ 86%] Building CXX object CMakeFiles/pbrt_test.dir/src/pbrt/filters_test.cpp.o
    [ 87%] Building CXX object CMakeFiles/pbrt_test.dir/src/pbrt/lights_test.cpp.o
    [ 87%] Linking CXX executable pspec
    [ 87%] Linking CXX executable plytool
    [ 87%] Linking CXX executable pbrt
    [ 87%] Building CXX object CMakeFiles/pbrt_test.dir/src/pbrt/lightsamplers_test.cpp.o
    [ 87%] Building CXX object CMakeFiles/pbrt_test.dir/src/pbrt/media_test.cpp.o
    [ 88%] Building CXX object CMakeFiles/pbrt_test.dir/src/pbrt/parser_test.cpp.o
    [ 88%] Built target pspec
    [ 88%] Building CXX object CMakeFiles/pbrt_test.dir/src/pbrt/samplers_test.cpp.o
    [ 88%] Built target plytool
    [ 89%] Building CXX object CMakeFiles/pbrt_test.dir/src/pbrt/shapes_test.cpp.o
    [ 89%] Building CXX object CMakeFiles/pbrt_test.dir/src/pbrt/cpu/integrators_test.cpp.o
    [ 89%] Built target pbrt_exe
    [ 90%] Building CXX object CMakeFiles/pbrt_test.dir/src/pbrt/util/args_test.cpp.o
    [ 90%] Building CXX object CMakeFiles/pbrt_test.dir/src/pbrt/util/buffercache_test.cpp.o
    [ 90%] Building CXX object CMakeFiles/pbrt_test.dir/src/pbrt/util/color_test.cpp.o
    [ 91%] Building CXX object CMakeFiles/pbrt_test.dir/src/pbrt/util/containers_test.cpp.o
    [ 91%] Building CXX object CMakeFiles/pbrt_test.dir/src/pbrt/util/file_test.cpp.o
    [ 92%] Building CXX object CMakeFiles/pbrt_test.dir/src/pbrt/util/float_test.cpp.o
    [ 92%] Building CXX object CMakeFiles/pbrt_test.dir/src/pbrt/util/hash_test.cpp.o
    [ 93%] Building CXX object CMakeFiles/pbrt_test.dir/src/pbrt/util/image_test.cpp.o
    [ 93%] Building CXX object CMakeFiles/pbrt_test.dir/src/pbrt/util/math_test.cpp.o
    [ 94%] Building CXX object CMakeFiles/pbrt_test.dir/src/pbrt/util/parallel_test.cpp.o
    [ 94%] Building CXX object CMakeFiles/pbrt_test.dir/src/pbrt/util/print_test.cpp.o
    [ 94%] Building CXX object CMakeFiles/pbrt_test.dir/src/pbrt/util/pstd_test.cpp.o
    [ 95%] Building CXX object CMakeFiles/pbrt_test.dir/src/pbrt/util/rng_test.cpp.o
    [ 95%] Building CXX object CMakeFiles/pbrt_test.dir/src/pbrt/util/sampling_test.cpp.o
    [ 96%] Linking CXX executable imgtool
    [ 97%] Building CXX object CMakeFiles/pbrt_test.dir/src/pbrt/util/spectrum_test.cpp.o
    [ 97%] Building CXX object CMakeFiles/pbrt_test.dir/src/pbrt/util/splines_test.cpp.o
    [ 97%] Built target imgtool
    [ 98%] Building CXX object CMakeFiles/pbrt_test.dir/src/pbrt/util/string_test.cpp.o
    [ 98%] Building CXX object CMakeFiles/pbrt_test.dir/src/pbrt/util/taggedptr_test.cpp.o
    [ 98%] Building CXX object CMakeFiles/pbrt_test.dir/src/pbrt/util/transform_test.cpp.o
    [100%] Building CXX object CMakeFiles/pbrt_test.dir/src/pbrt/util/vecmath_test.cpp.o
    [100%] Linking CXX executable pbrt_test
    [100%] Built target pbrt_test

  • 相关阅读:
    iOS创建苹果证书、制作p12证书流程
    建议收藏!混迹职场多年总结出的8大技巧!
    序列中排列存在类dp问题+结合组合数学和拆贡献:1014T4
    CUDA——可用于核函数中的CUDA基本数学运算函数总结
    C++ day2
    过滤器,simple_tag,inclusion_tag,模板继承
    会议邀请 | 思腾合力邀您共赴PRCV 2023第六届中国模式识别与计算机视觉大会
    大数据面试重点之kafka(四)
    MybatisPlus简单使用与自定义sql以及通过自定义sql实现多表联查的分页查询
    【机器学习:IT行业的现在与未来】技术应用与趋势探索
  • 原文地址:https://blog.csdn.net/jinshelj/article/details/126458035