请选择 进入手机版 | 继续访问电脑版

开源计算机图形学社区(Open Source Computer Graphics Community) |OpenGPU Forum (2007-2013)| OpenGPU Project

 找回密码
 注册
搜索
查看: 2178|回复: 7

关于 pbrt-v3 的编译问题 [复制链接]

Rank: 4

注册时间
2016-12-2
积分
24
发表于 2016-12-2 15:53:44 |显示全部楼层
我刚入手 pbrt 第三版,可是与 pbrt-v2 不同,我研究了两天无法编译成功,想要请教一下:
我使用 CMAKE 编译以后,ALL_BUILD,生成失败,试图只生成 libpbrt 也失败。主要有3个问题:
1、INT_MIX ... 等 宏重定义
2、glog.lib 缺失
3、libpbrt.lib 缺失
请问一下正确的编译顺序是什么?我应该下载哪些工具呢?
最后,我使用的是VS2015,WIN10。
如果各位能指导我一下,我真的非常感谢。



shenruiyao于2016-12-2 16:13补充以下内容:
error C3861: “_BitScanReverse64”: 找不到标识符

这个问题该怎么处理?一点头绪都没有

Rank: 16Rank: 16Rank: 16Rank: 16

注册时间
2012-7-6
积分
3152
发表于 2016-12-2 18:17:55 |显示全部楼层
使用cmake的时候选择64位编译器就行了

使用道具 举报

Rank: 8Rank: 8

注册时间
2013-11-15
积分
184
发表于 2016-12-8 09:10:02 |显示全部楼层
下载相应的lib,在linux下编译也遇到缺少相关依赖库的情况。

使用道具 举报

Rank: 8Rank: 8

注册时间
2016-4-29
积分
157
发表于 2016-12-11 11:03:50 |显示全部楼层
用git clone 然后cmake就行了

使用道具 举报

Rank: 1

注册时间
2017-1-2
积分
17
发表于 2017-1-3 08:39:46 |显示全部楼层
看下configure的时候是不是选的visual studio 14.0 2015 win64.应该是只有这个才行

使用道具 举报

Rank: 4

注册时间
2017-3-9
积分
26
发表于 2017-3-10 09:56:18 |显示全部楼层
这个问题,我也遇到过,其实就是因为没有区分WIN32和WIN64版本导致的,我的解决方案如下:

1.打开pbrt.h文件

2.找到inline int Log2Int(uint64_t v)

3.替换为:inline int Log2Int(uint64_t v) {
#if defined(PBRT_IS_MSVC)
    unsigned long lz = 0;
#ifdef _WIN32
    if (_BitScanReverse(&lz, v)) return lz;
    return 0;
#else
        if (_BitScanReverse64(&lz, v)) return lz;
        return 0;
#endif
#else
    return 63 - __builtin_clzll(v);
#endif
}

4.重新编译。

使用道具 举报

Rank: 4

注册时间
2017-2-27
积分
24
发表于 2017-4-8 14:15:30 |显示全部楼层
我的也cmke出错,找不到库 pthread

使用道具 举报

Rank: 1

注册时间
2017-5-16
积分
17
发表于 2017-5-16 13:02:37 |显示全部楼层
请问 你解决了吗?我今天编译也遇到问题了,想请教一下

使用道具 举报

最近看过此主题的会员

您需要登录后才可以回帖 登录 | 注册

‹‹
我的工具栏

关于我们|手机版|Archiver|开源计算机图形学社区(Open Source Computer Graphics Community) | OpenGPU Project | OpenGPU Forum (2007-2013)

GMT+8, 2017-7-24 08:31 , Processed in 0.141890 second(s), 11 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部