报错:
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
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