Comments (14)
I just pushed changes that should fix 1, 3, and 4. Will take a look at 3.
If you can send a full build log, that's definitely helpful. Alternatively, there are still known issues with floating-point constants and a union in the bidirectional path tracer that we're working on, so you may want to wait for those.
Thanks for giving it a shot!
from pbrt-v3.
I just pulled the latest src. Here is some of what I'm seeing...
1>------ Build started: Project: ZERO_CHECK, Configuration: Debug Win32 ------
2>------ Skipped Build: Project: RUN_TESTS, Configuration: Debug Win32 ------
2>Project not selected to build for this solution configuration
1> Checking Build System
1> CMake does not need to re-run because C:/projects/pbrt-v3-build/CMakeFiles/generate.stamp is up-to-date.
3>------ Build started: Project: pbrt, Configuration: Debug Win32 ------
3> Building Custom Rule C:/projects/pbrt-v3/CMakeLists.txt
3> CMake does not need to re-run because C:\projects\pbrt-v3-build\CMakeFiles\generate.stamp is up-to-date.
3> pbrtlex.cpp
3>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\stdint.h(57): warning C4005: 'INT8_MIN' : macro redefinition
3> /Users/mpharr/pbrt-3ed/b2/pbrtlex.cpp(62) : see previous definition of 'INT8_MIN'
3>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\stdint.h(58): warning C4005: 'INT16_MIN' : macro redefinition
3> /Users/mpharr/pbrt-3ed/b2/pbrtlex.cpp(65) : see previous definition of 'INT16_MIN'
3>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\stdint.h(59): warning C4005: 'INT32_MIN' : macro redefinition
3> /Users/mpharr/pbrt-3ed/b2/pbrtlex.cpp(68) : see previous definition of 'INT32_MIN'
3>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\stdint.h(61): warning C4005: 'INT8_MAX' : macro redefinition
3> /Users/mpharr/pbrt-3ed/b2/pbrtlex.cpp(71) : see previous definition of 'INT8_MAX'
3>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\stdint.h(62): warning C4005: 'INT16_MAX' : macro redefinition
3> /Users/mpharr/pbrt-3ed/b2/pbrtlex.cpp(74) : see previous definition of 'INT16_MAX'
3>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\stdint.h(63): warning C4005: 'INT32_MAX' : macro redefinition
3> /Users/mpharr/pbrt-3ed/b2/pbrtlex.cpp(77) : see previous definition of 'INT32_MAX'
3>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\stdint.h(65): warning C4005: 'UINT8_MAX' : macro redefinition
3> /Users/mpharr/pbrt-3ed/b2/pbrtlex.cpp(80) : see previous definition of 'UINT8_MAX'
3>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\stdint.h(66): warning C4005: 'UINT16_MAX' : macro redefinition
3> /Users/mpharr/pbrt-3ed/b2/pbrtlex.cpp(83) : see previous definition of 'UINT16_MAX'
3>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\stdint.h(67): warning C4005: 'UINT32_MAX' : macro redefinition
3> /Users/mpharr/pbrt-3ed/b2/pbrtlex.cpp(86) : see previous definition of 'UINT32_MAX'
3>/Users/mpharr/pbrt-3ed/b2/pbrtlex.cpp(804): fatal error C1083: Cannot open include file: 'unistd.h': No such file or directory
3> pbrtparse.cpp
3>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\math.h(425): error C2668: 'fpclassify' : ambiguous call to overloaded function
3> C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\math.h(314): could be 'int fpclassify(long double)'
3> C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\math.h(309): or 'int fpclassify(double)'
3> C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\math.h(304): or 'int fpclassify(float)'
3> while trying to match the argument list '(int)'
3> c:\projects\pbrt-v3\src\core\geometry.h(360) : see reference to function template instantiation 'bool isnan(_Ty)' being compiled
3> with
3> [
3> T=int
3> , _Ty=int
3> ]
3> c:\projects\pbrt-v3\src\core\geometry.h(360) : while compiling class template member function 'bool Point2::HasNaNs(void) const'
3> c:\projects\pbrt-v3\src\core\geometry.h(254) : see reference to function template instantiation 'bool Point2::HasNaNs(void) const' being compiled
3> c:\projects\pbrt-v3\src\core\geometry.h(777) : see reference to class template instantiation 'Point2' being compiled
3> api.cpp
3>c:\projects\pbrt-v3\src\core\rng.h(86): error C2059: syntax error : 'bad suffix on number'
3>c:\projects\pbrt-v3\src\core\rng.h(86): error C2146: syntax error : missing ')' before identifier 'p'
3>c:\projects\pbrt-v3\src\core\rng.h(86): error C2784: '_Ty std::min(std::initializer_list<_Elem>,_Pr)' : could not deduce template argument for 'std::initializer_list<_Elem>' from 'const Float'
3> C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\algorithm(4141) : see declaration of 'std::min'
3>c:\projects\pbrt-v3\src\core\rng.h(86): error C2780: 'const _Ty &std::min(const _Ty &,const _Ty &,_Pr)' : expects 3 arguments - 2 provided
3> C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\algorithm(4134) : see declaration of 'std::min'
3>c:\projects\pbrt-v3\src\core\rng.h(86): error C2780: '_Ty std::min(std::initializer_list<_Elem>)' : expects 1 arguments - 2 provided
3> C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\algorithm(4125) : see declaration of 'std::min'
3>c:\projects\pbrt-v3\src\core\rng.h(86): error C2782: 'const _Ty &std::min(const _Ty &,const _Ty &)' : template parameter '_Ty' is ambiguous
3> C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\algorithm(4119) : see declaration of 'std::min'
3> could be 'uint32_t'
3> or 'Float'
3>c:\projects\pbrt-v3\src\core\rng.h(86): error C2059: syntax error : ')'
3>C:\projects\pbrt-v3\src\integrators/bdpt.h(284): warning C4018: '<' : signed/unsigned mismatch
3>c:\projects\pbrt-v3\src\core\mipmap.h(47): error C2146: syntax error : missing ';' before identifier 'int64_t'
3>c:\projects\pbrt-v3\src\core\mipmap.h(47): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
3>c:\projects\pbrt-v3\src\core\mipmap.h(48): error C2146: syntax error : missing ';' before identifier 'int64_t'
3>c:\projects\pbrt-v3\src\core\mipmap.h(48): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
3>c:\projects\pbrt-v3\src\core\mipmap.h(48): error C2086: 'int thread_local' : redefinition
3> c:\projects\pbrt-v3\src\core\mipmap.h(47) : see declaration of 'thread_local'
3>c:\projects\pbrt-v3\src\core\mipmap.h(49): error C2146: syntax error : missing ';' before identifier 'int64_t'
3>c:\projects\pbrt-v3\src\core\mipmap.h(49): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
3>c:\projects\pbrt-v3\src\core\mipmap.h(49): error C2086: 'int thread_local' : redefinition
3> c:\projects\pbrt-v3\src\core\mipmap.h(47) : see declaration of 'thread_local'
3>c:\projects\pbrt-v3\src\core\mipmap.h(50): error C2146: syntax error : missing ';' before identifier 'uint64_t'
3>c:\projects\pbrt-v3\src\core\mipmap.h(50): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
3>c:\projects\pbrt-v3\src\core\mipmap.h(50): error C2086: 'int thread_local' : redefinition
3> c:\projects\pbrt-v3\src\core\mipmap.h(47) : see declaration of 'thread_local'
3>c:\projects\pbrt-v3\src\core\lowdiscrepancy.h(107): error C2059: syntax error : 'bad suffix on number'
3>c:\projects\pbrt-v3\src\core\lowdiscrepancy.h(107): error C2146: syntax error : missing ';' before identifier 'p'
3>c:\projects\pbrt-v3\src\core\lowdiscrepancy.h(107): error C2065: 'p' : undeclared identifier
3>c:\projects\pbrt-v3\src\core\lowdiscrepancy.h(107): error C2146: syntax error : missing ';' before identifier 'f'
3>c:\projects\pbrt-v3\src\core\lowdiscrepancy.h(107): error C2065: 'f' : undeclared identifier
3>c:\projects\pbrt-v3\src\core\lowdiscrepancy.h(116): error C2059: syntax error : 'bad suffix on number'
3>c:\projects\pbrt-v3\src\core\lowdiscrepancy.h(116): error C2146: syntax error : missing ';' before identifier 'p'
3>c:\projects\pbrt-v3\src\core\lowdiscrepancy.h(116): error C2146: syntax error : missing ';' before identifier 'f'
3>c:\projects\pbrt-v3\src\core\lowdiscrepancy.h(116): warning C4552: '-' : operator has no effect; expected operator with side-effect
3>c:\projects\pbrt-v3\src\core\lowdiscrepancy.h(116): error C2065: 'f' : undeclared identifier
3>c:\projects\pbrt-v3\src\core\lowdiscrepancy.h(125): error C2059: syntax error : 'bad suffix on number'
3>c:\projects\pbrt-v3\src\core\lowdiscrepancy.h(125): error C2146: syntax error : missing ';' before identifier 'p'
3>c:\projects\pbrt-v3\src\core\lowdiscrepancy.h(125): error C2146: syntax error : missing ';' before identifier 'f'
3>c:\projects\pbrt-v3\src\core\lowdiscrepancy.h(125): warning C4552: '-' : operator has no effect; expected operator with side-effect
3>c:\projects\pbrt-v3\src\core\lowdiscrepancy.h(125): error C2065: 'f' : undeclared identifier
3>c:\projects\pbrt-v3\src\core\lowdiscrepancy.h(126): error C2059: syntax error : 'bad suffix on number'
3>c:\projects\pbrt-v3\src\core\lowdiscrepancy.h(126): error C2146: syntax error : missing ';' before identifier 'p'
3>c:\projects\pbrt-v3\src\core\lowdiscrepancy.h(126): error C2146: syntax error : missing ';' before identifier 'f'
3>c:\projects\pbrt-v3\src\core\lowdiscrepancy.h(126): warning C4552: '-' : operator has no effect; expected operator with side-effect
3>c:\projects\pbrt-v3\src\core\lowdiscrepancy.h(126): error C2065: 'f' : undeclared identifier
3>c:\projects\pbrt-v3\src\core\lowdiscrepancy.h(216): error C2059: syntax error : 'bad suffix on number'
3>c:\projects\pbrt-v3\src\core\lowdiscrepancy.h(216): error C2146: syntax error : missing ';' before identifier 'p'
3>c:\projects\pbrt-v3\src\core\lowdiscrepancy.h(216): error C2065: 'p' : undeclared identifier
3>c:\projects\pbrt-v3\src\core\lowdiscrepancy.h(216): error C2146: syntax error : missing ';' before identifier 'f'
3>c:\projects\pbrt-v3\src\core\lowdiscrepancy.h(216): error C2065: 'f' : undeclared identifier
3>C:\projects\pbrt-v3\src\shapes/triangle.h(46): error C2146: syntax error : missing ';' before identifier 'int64_t'
3>C:\projects\pbrt-v3\src\shapes/triangle.h(46): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
3>C:\projects\pbrt-v3\src\shapes/triangle.h(46): error C2086: 'int thread_local' : redefinition
3> c:\projects\pbrt-v3\src\core\mipmap.h(47) : see declaration of 'thread_local'
3>C:\projects\pbrt-v3\src\core\api.cpp(1085): error C2146: syntax error : missing ';' before identifier 'int64_t'
3>C:\projects\pbrt-v3\src\core\api.cpp(1085): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
3>C:\projects\pbrt-v3\src\core\api.cpp(1085): error C2086: 'int thread_local' : redefinition
3> c:\projects\pbrt-v3\src\core\mipmap.h(47) : see declaration of 'thread_local'
3>C:\projects\pbrt-v3\src\core\api.cpp(1095): error C2146: syntax error : missing ';' before identifier 'int64_t'
3>C:\projects\pbrt-v3\src\core\api.cpp(1095): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
3>C:\projects\pbrt-v3\src\core\api.cpp(1095): error C2086: 'int thread_local' : redefinition
3> c:\projects\pbrt-v3\src\core\mipmap.h(47) : see declaration of 'thread_local'
3> camera.cpp
3>c:\projects\pbrt-v3\src\core\rng.h(86): error C2059: syntax error : 'bad suffix on number'
3>c:\projects\pbrt-v3\src\core\rng.h(86): error C2146: syntax error : missing ')' before identifier 'p'
3>c:\projects\pbrt-v3\src\core\rng.h(86): error C2784: '_Ty std::min(std::initializer_list<_Elem>,_Pr)' : could not deduce template argument for 'std::initializer_list<_Elem>' from 'const Float'
3> C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\algorithm(4141) : see declaration of 'std::min'
3>c:\projects\pbrt-v3\src\core\rng.h(86): error C2780: 'const _Ty &std::min(const _Ty &,const _Ty &,_Pr)' : expects 3 arguments - 2 provided
3> C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\algorithm(4134) : see declaration of 'std::min'
3>c:\projects\pbrt-v3\src\core\rng.h(86): error C2780: '_Ty std::min(std::initializer_list<_Elem>)' : expects 1 arguments - 2 provided
3> C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\algorithm(4125) : see declaration of 'std::min'
3>c:\projects\pbrt-v3\src\core\rng.h(86): error C2782: 'const _Ty &std::min(const _Ty &,const _Ty &)' : template parameter '_Ty' is ambiguous
3> C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\algorithm(4119) : see declaration of 'std::min'
3> could be 'uint32_t'
3> or 'Float'
3>c:\projects\pbrt-v3\src\core\rng.h(86): error C2059: syntax error : ')'
3> efloat.cpp
3> error.cpp
3> fileutil.cpp
3> film.cpp
3>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\math.h(425): error C2668: 'fpclassify' : ambiguous call to overloaded function
3> C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\math.h(314): could be 'int fpclassify(long double)'
3> C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\math.h(309): or 'int fpclassify(double)'
3> C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\math.h(304): or 'int fpclassify(float)'
3> while trying to match the argument list '(int)'
3> c:\projects\pbrt-v3\src\core\geometry.h(360) : see reference to function template instantiation 'bool isnan(_Ty)' being compiled
3> with
3> [
3> T=int
3> , _Ty=int
3> ]
3> c:\projects\pbrt-v3\src\core\geometry.h(360) : while compiling class template member function 'bool Point2::HasNaNs(void) const'
3> c:\projects\pbrt-v3\src\core\geometry.h(254) : see reference to function template instantiation 'bool Point2::HasNaNs(void) const' being compiled
3> c:\projects\pbrt-v3\src\core\geometry.h(777) : see reference to class template instantiation 'Point2' being compiled
3> filter.cpp
3>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\math.h(425): error C2668: 'fpclassify' : ambiguous call to overloaded function
3> C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\math.h(314): could be 'int fpclassify(long double)'
3> C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\math.h(309): or 'int fpclassify(double)'
3> C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\math.h(304): or 'int fpclassify(float)'
3> while trying to match the argument list '(int)'
3> c:\projects\pbrt-v3\src\core\geometry.h(360) : see reference to function template instantiation 'bool isnan(_Ty)' being compiled
3> with
3> [
3> T=int
3> , _Ty=int
3> ]
3> c:\projects\pbrt-v3\src\core\geometry.h(360) : while compiling class template member function 'bool Point2::HasNaNs(void) const'
3> c:\projects\pbrt-v3\src\core\geometry.h(254) : see reference to function template instantiation 'bool Point2::HasNaNs(void) const' being compiled
3> c:\projects\pbrt-v3\src\core\geometry.h(777) : see reference to class template instantiation 'Point2' being compiled
3> floatfile.cpp
3> geometry.cpp
3>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\math.h(425): error C2668: 'fpclassify' : ambiguous call to overloaded function
3> C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\math.h(314): could be 'int fpclassify(long double)'
3> C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\math.h(309): or 'int fpclassify(double)'
3> C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\math.h(304): or 'int fpclassify(float)'
3> while trying to match the argument list '(int)'
3> c:\projects\pbrt-v3\src\core\geometry.h(360) : see reference to function template instantiation 'bool isnan(_Ty)' being compiled
3> with
3> [
3> T=int
3> , _Ty=int
3> ]
3> c:\projects\pbrt-v3\src\core\geometry.h(360) : while compiling class template member function 'bool Point2::HasNaNs(void) const'
3> c:\projects\pbrt-v3\src\core\geometry.h(254) : see reference to function template instantiation 'bool Point2::HasNaNs(void) const' being compiled
3> c:\projects\pbrt-v3\src\core\geometry.h(777) : see reference to class template instantiation 'Point2' being compiled
3> imageio.cpp
3>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\math.h(425): error C2668: 'fpclassify' : ambiguous call to overloaded function
3> C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\math.h(314): could be 'int fpclassify(long double)'
3> C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\math.h(309): or 'int fpclassify(double)'
3> C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\math.h(304): or 'int fpclassify(float)'
3> while trying to match the argument list '(int)'
3> c:\projects\pbrt-v3\src\core\geometry.h(360) : see reference to function template instantiation 'bool isnan(_Ty)' being compiled
3> with
3> [
3> T=int
3> , _Ty=int
3> ]
3> c:\projects\pbrt-v3\src\core\geometry.h(360) : while compiling class template member function 'bool Point2::HasNaNs(void) const'
3> c:\projects\pbrt-v3\src\core\geometry.h(254) : see reference to function template instantiation 'bool Point2::HasNaNs(void) const' being compiled
3> c:\projects\pbrt-v3\src\core\geometry.h(777) : see reference to class template instantiation 'Point2' being compiled
3> integrator.cpp
3>c:\projects\pbrt-v3\src\core\rng.h(86): error C2059: syntax error : 'bad suffix on number'
from pbrt-v3.
If you can tell me how to send you the whole build log, I will gladly do so.
from pbrt-v3.
Many of the remaining issues should have been fixed by dbebfc3. If you can sync to top of tree and do another build and let me know if there are any more issues, I'll try to get them fixed quickly!
from pbrt-v3.
Building with MSVC 2015 is reported to work now with top of tree (issue #32). I'm hopeful that this has also fixed all of the issues with MSVC 2013. If you can try with the latest and let me know if there are any issues, it'd be great to know if there's anything else to be done.
from pbrt-v3.
The standard MSVC 2013 build (without CTPs installed) still has problems with a lot of the C++11 features. Since MSVC 2015 is feely available and better in almost any respect, I would vote for closing as 'wontfix' rather than changing standard-conformant code to compile in MSVC 2013.
from pbrt-v3.
Sometimes it's surprising how ancient the software available is for students / classes, but this sounds reasonable. If a pull request arrives that fixes this and isn't too disruptive, I'd be happy to merge it, but for now, sounds good.
from pbrt-v3.
Unfortunately, I'm stuck in the real world, where compiler tool upgrades have to wait for support across the range of tools and libraries our products rely on. So I am stuck with VS2013 for now.
I am seeing 2 types of issues so far. Code that relies on parts of C++11 that outright aren't supported by VS2013 (e.g. constexpr) and parts that could be equivalently expressed using other C++ constructs (e.g. use hex literals instead of binary ones). Would you be interested in changes of the latter sort?
I will probably try to come up with some sort of scheme to allow local code changes to support VS2013 with minimal impact on the rest of the code. I will let you know when I get a functioning build. Thanks.
from pbrt-v3.
Ok, then let's get it building with VS2013. :-). Reopening this issue.
Are you using the latest version of the source code? I believe that constexpr should be #define'd to const for MSVC versions that don't support constexpr yet.
Happy to take any changes that get it building on VS2013. Alternatively, feel free to paste a log of build errors and I'm happy to try fixing them.
from pbrt-v3.
Thanks, Matt.
The problem I found with constexpr is with 2 macros in the stats.h header file, STAT_INT_DISTRIBUTION and STAT_FLOAT_DISTRIBUTION. They both have lines of the sort:
static thread_local int64_t var##min = std::numeric_limits<int64_t>::max();
This causes the following error in sppm.cpp when invoking the macro:
..\src\integrators\sppm.cpp(61): error C2482: 'gridCellsPerVisiblePointmin' : dynamic initialization of 'thread' data not allowed
This is because we really need constexpr, not const, for the line in the macro to be legal and VS2013 just chokes on it. I have an #ifdef on _MSC_VER in stats.h to work around this.
More to come...
from pbrt-v3.
Hi there!
I'm using qtcreator- with the MSVC2013 compiler in 64-bit mode.
I'm also using the CMake arguments:
-DRTCORE_TASKING_SYSTEM=INTERNAL -DENABLE_ISPC_SUPPORT=0 -DCMAKE_BUILD_TYPE=Release
Upon build I get, predictably, about the same set of issues are mjhsnps is getting.
I'm also looking in to making some fixes locally to commit back, I'll also keep you posted.
Thanks.
from pbrt-v3.
The good news: it's now very close to building with MSVC2013.
The bad news: I don't understand the remaining errors.
Current build log here: https://ci.appveyor.com/project/mmp/pbrt-v3/build/job/msiwu03eywsmbary
Remaining errors:
C:\pbrt-v3\src\core\bssrdf.cpp(308): error C2327: 'SeparableBSSRDF::material' : is not a type name, static, or enumerator [c:\pbrt-v3\build\pbrt.vcxproj]
C:\pbrt-v3\src\core\bssrdf.cpp(308): error C2065: 'material' : undeclared identifier [c:\pbrt-v3\build\pbrt.vcxproj]
C:\pbrt-v3\src\core\bssrdf.cpp(323): error C2352: 'SeparableBSSRDF::Pdf_Sp' : illegal call of non-static member function [c:\pbrt-v3\build\pbrt.vcxproj]
c:\pbrt-v3\src\core\bssrdf.h(100) : see declaration of 'SeparableBSSRDF::Pdf_Sp'
C:\pbrt-v3\src\core\bssrdf.cpp(324): error C2352: 'SeparableBSSRDF::Sp' : illegal call of non-static member function [c:\pbrt-v3\build\pbrt.vcxproj]
c:\pbrt-v3\src\core\bssrdf.h(91) : see declaration of 'SeparableBSSRDF::Sp'
camera.cpp
C:\pbrt-v3\src\accelerators\bvh.cpp(621): error C2352: 'BVHAccel::buildUpperSAH' : illegal call of non-static member function [c:\pbrt-v3\build\pbrt.vcxproj]
C:\pbrt-v3\src\accelerators/bvh.h(84) : see declaration of 'BVHAccel::buildUpperSAH'
C:\pbrt-v3\src\accelerators\bvh.cpp(622): error C2352: 'BVHAccel::buildUpperSAH' : illegal call of non-static member function [c:\pbrt-v3\build\pbrt.vcxproj]
C:\pbrt-v3\src\accelerators/bvh.h(84) : see declaration of 'BVHAccel::buildUpperSAH'
C:\pbrt-v3\src\accelerators\bvh.cpp(622): error C2660: 'BVHBuildNode::InitInterior' : function does not take 1 arguments [c:\pbrt-v3\build\pbrt.vcxproj]
kdtreeaccel.cpp
In both cases, the compiler seems to believe that the respective method is static (and thus can't access member variables, etc.), even though it isn't.
One random thing is that both of these methods happen to declare local structs in their implementations. Is this tickling some random MSVC2013 bug?
from pbrt-v3.
Closing this out. Thanks to @tunabrain for fixing up the last issues.
from pbrt-v3.
Thanks for the update, I can now build in VC2013 just fine also.
There are still a lot of cast-warnings, but they're getting through OK.
I've managed to build using VC2013 express - 64bit with cmake-3.0.1 in QtCreator-3.1.2
The only issue was that for the zlib pre-build, the $ variable wasn't being defined on my system (cmake didn't like it), but that's probably something to do with my specific configuration setup.
Thanks again.
from pbrt-v3.
Related Issues (20)
- Radiometry Pack For Beginner like me
- A bug in OrthographicCamera::GenerateRay of pbrt-v3
- Git repository and CDN does not work HOT 2
- Two questions about spectral rendering and output HOT 6
- Sphere::Pdf does not return zero when wi points away from the sphere.
- Black marks on bump mapped area.
- What happens in `BVHAccel::Intersect` when the ray has one component == 0.0 ? HOT 1
- How to run rendering on GPU instead of CPU (pbrt v3) HOT 1
- build error on windows using mingw HOT 1
- pbrt-v3 failed to build due to error MSB8066 using MSVC for ARM64EC target on Windows HOT 1
- PBRT wouldn't finish building on FreeBSD
- Samples "leak out" from the medium due to imperfect ray-intersection logic
- No PDF cutoff for light samples with a zero BxDF probability HOT 2
- win10/Visual studio 2019 install HOT 4
- nan values during rendering (HairBxDF?)
- Is refraction implemented correctly in v3 BDPT? HOT 1
- MSVC 14.37 has compilation issue when building `lmfAttribute.cpp`
- Mathematical confusion of Global sampler array samples
- compilation error HOT 3
- about the formular 16.1 in pbrt-v3-book
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pbrt-v3.