Git Product home page Git Product logo

Comments (14)

mmp avatar mmp commented on September 27, 2024

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.

barryfx avatar barryfx commented on September 27, 2024

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.

barryfx avatar barryfx commented on September 27, 2024

If you can tell me how to send you the whole build log, I will gladly do so.

from pbrt-v3.

mmp avatar mmp commented on September 27, 2024

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.

mmp avatar mmp commented on September 27, 2024

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.

wjakob avatar wjakob commented on September 27, 2024

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.

mmp avatar mmp commented on September 27, 2024

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.

mjhsnps avatar mjhsnps commented on September 27, 2024

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.

mmp avatar mmp commented on September 27, 2024

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.

mjhsnps avatar mjhsnps commented on September 27, 2024

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.

etheory avatar etheory commented on September 27, 2024

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.

mmp avatar mmp commented on September 27, 2024

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.

mmp avatar mmp commented on September 27, 2024

Closing this out. Thanks to @tunabrain for fixing up the last issues.

from pbrt-v3.

etheory avatar etheory commented on September 27, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.