0

最近はpbrt(物理ベースレンダリング)の勉強をしています。ただし、VS2019で使用するには疑問があります。pbrt システムを cmake し (コマンド "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 では未解決の外部シンボル エラーが多数発生しますが、ここではそのすべてを示していません。

重大度コード 説明 Project File Line Suppression State Error LNK2001 unresolved external symbol "int __cdecl Imf::globalThreadCount(void)" (?globalThreadCount@Imf@@YAHXZ) PBRT E:\PBRT\PBRT\libpbrt.lib(imageio.obj) 1

重大度コード 説明 Project File Line Suppression State Error LNK2001 unresolved external symbol "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

重大度コード 説明 Project File Line Suppression State Error LNK2001 unresolved external symbol "public: virtual __cdecl Imf::RgbaOutputFile::~RgbaOutputFile(void)" (??1RgbaOutputFile@Imf@@UEAA@XZ) PBRT E:\PBRT\PBRT\ libpbrt.lib(imageio.obj) 1

重大度コード 説明 Project File Line Suppression State Error LNK2001 unresolved external symbol "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

重大度コード 説明 Project File Line Suppression State Error LNK2001 unresolved external symbol "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

重大度コード 説明 Project File Line Suppression State Error LNK2001 未解決の外部シンボル inflateEnd PBRT E:\PBRT\PBRT\Ptex.lib(PtexReader.obj) 1

重大度コード 説明 Project File Line Suppression State Error LNK1120 15 unresolved externals PBRT E:\PBRT\x64\Release\PBRT.exe 1

pbrt の何が問題になっていますか? 私はcmakeのときに何も間違っていなかったと思いますが、今何をすべきでしょうか? この質問に答えていただきありがとうございます。

4

0 に答える 0