最近,我正在学习 pbrt(基于物理的渲染)。但是,我在 VS2019 中使用它有一个问题。我已经创建了 pbrt 系统(使用命令“git clone --recursive https://github.com/mmp/pbrt-v3/”),并将其包含在 VS 中。在我写了一个简单的测试代码之后:
#define GOOGLE_GLOG_DLL_DECL
#include "core\pbrt.h"
#include "core\geometry.h"
#include "core\transform.h"
#include <iostream>
using namespace pbrt;
int main() {
Transform T = Scale(2,3,5);
pbrt::Vector3f a(1, 1, 1);
pbrt::Vector3f b(2, 1, 1);
pbrt::Vector3f c = a + b;
pbrt::Point3f p0(0, 0, 0);
pbrt::Ray r(p0, a);
std::cout << r << std::endl;
}
VS2019 提供了许多未解决的外部符号错误,我没有在这里显示所有这些错误:
严重性代码 描述 项目文件行抑制状态错误 LNK2001 无法解析的外部符号 "int __cdecl Imf::globalThreadCount(void)" (?globalThreadCount@Imf@@YAHXZ) PBRT E:\PBRT\PBRT\libpbrt.lib(imageio.obj) 1
严重性代码 描述 项目文件行抑制状态错误 LNK2001 无法解析的外部符号 "public: __cdecl Imf::RgbaOutputFile::RgbaOutputFile(char const * const,class Imath::Box<class Imath::Vec2 > const &,class Imath::Box <class Imath::Vec2 > const &,enum Imf::RgbaChannels,float,class Imath::Vec2,float,enum Imf::LineOrder,enum Imf::Compression,int)" (??0RgbaOutputFile@Imf@@QEAA @QEBDAEBV?$Box@V?$Vec2@H@Imath@@@Imath@@1W4RgbaChannels@1@MV?$Vec2@M@3@MW4LineOrder@1@W4Compression@1@H@Z) PBRT E:\PBRT \PBRT\libpbrt.lib(imageio.obj) 1
严重性代码 描述 项目文件行抑制状态错误 LNK2001 无法解析的外部符号 "public: virtual __cdecl Imf::RgbaOutputFile::~RgbaOutputFile(void)" (??1RgbaOutputFile@Imf@@UEAA@XZ) PBRT E:\PBRT\PBRT\ libpbrt.lib(imageio.obj) 1
严重性代码 描述 项目文件行抑制状态错误 LNK2001 无法解析的外部符号 "public: void __cdecl Imf::RgbaOutputFile::setFrameBuffer(struct Imf::Rgba const *,unsigned __int64,unsigned __int64)" (?setFrameBuffer@RgbaOutputFile@Imf@@ QEAAXPEBURgba@2@_K1@Z) PBRT E:\PBRT\PBRT\libpbrt.lib(imageio.obj) 1
严重性代码 描述 项目文件行抑制状态错误 LNK2001 无法解析的外部符号 "public: class Imath::Box<class Imath::Vec2 > const & __cdecl Imf::RgbaInputFile::displayWindow(void)const " (?displayWindow@RgbaInputFile@Imf @@QEBAAEBV?$Box@V?$Vec2@H@Imath@@@Imath@@XZ) PBRT E:\PBRT\PBRT\libpbrt.lib(imageio.obj) 1
严重性代码 描述 项目文件行抑制状态错误 LNK2001 无法解析的外部符号 inflate PBRT E:\PBRT\PBRT\Ptex.lib(PtexReader.obj) 1
严重性代码 描述 项目文件行抑制状态错误 LNK2001 unresolved external symbol inflateEnd PBRT E:\PBRT\PBRT\Ptex.lib(PtexReader.obj) 1
严重性代码 描述 项目文件行抑制状态错误 LNK1120 15 未解析的外部 PBRT E:\PBRT\x64\Release\PBRT.exe 1
pbrt 有什么问题?我想我在cmake时没有做错什么,我现在打算做什么?非常感谢您回答这个问题。