Dade wrote: ↑Sat Nov 13, 2021 2:57 pm
2 issues here:
1) You seem to have a libpng v1.6.37 ".so" somewhere and it used instead of v1.4.12. On Linux, you would have to do a "ldd luxcoreui" to check what libpng DLL is used (no idea if ldd is available on MacOS
).
2) libpng should be statically linked so the above message is even more strange. It seems to hint a dynamic liking with a libpng DLL. You may want to check what libpng cmake resolves and compile with.
Thanks! I was thinking the same things, but couldn't remember the commands to check dynamic linkage. The MacOS equivalent is "otool -L luxcoreui" (thanks, Google). I ran otool -L against the official distributed LuxCore 2.5 binary and my build, and confirmed that libpng is probably statically linked -- I assume to libOpenImageIO.1.8.dylib. One thing to note: I disabled "Use Shared Libraries" from the LuxCore CMake options, but maybe this is currently unused on the Mac cmake build process?
Regarding libpng versions, MacOSCompileDeps contains and builds libpng version 1.6 (libpng16.a). I modified the LuxCore CMake files and double-checked Xcode project files to explicitly use "libpng16.a" and "include\libpng16" in the compiler/linker arguments, but I'm still getting the same warning/error message. My next step is to modify the build scripts for MacOSCompileDeps so that it does not erase the evidence of when it completes building of each dependency library. I'll then start searching through OpenImageIO to see if there's an extra copy of libpng hidden inside its tarball.
FYI, here is the otool -L outputs for comparison:
Official LuxCore 2.5 distributed binaries which fully work without PNG errors:
Code: Select all
luxcoreui:
@executable_path/../Resources/libs/libomp.dylib (compatibility version 5.0.0, current version 5.0.0)
/System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 23.0.0)
/System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0)
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1673.126.0)
/System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo (compatibility version 1.2.0, current version 1.5.0)
@executable_path/../Resources/libs/libembree3.3.dylib (compatibility version 3.0.0, current version 3.0.0)
@executable_path/../Resources/libs/libOpenImageDenoise.1.2.1.dylib (compatibility version 0.0.0, current version 1.2.1)
@executable_path/../Resources/libs/libtbb.dylib (compatibility version 0.0.0, current version 0.0.0)
@executable_path/../Resources/libs/libtiff.5.dylib (compatibility version 11.0.0, current version 11.0.0)
/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.11)
@executable_path/../Resources/libs/libOpenImageIO.1.8.dylib (compatibility version 1.8.0, current version 1.8.13)
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 800.7.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1281.0.0)
/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 1894.10.126)
/System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics (compatibility version 64.0.0, current version 1348.12.4)
/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 1673.126.0)
/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
luxcoreconsole:
@executable_path/../Resources/libs/libomp.dylib (compatibility version 5.0.0, current version 5.0.0)
@executable_path/../Resources/libs/libembree3.3.dylib (compatibility version 3.0.0, current version 3.0.0)
@executable_path/../Resources/libs/libOpenImageDenoise.1.2.1.dylib (compatibility version 0.0.0, current version 1.2.1)
@executable_path/../Resources/libs/libtbb.dylib (compatibility version 0.0.0, current version 0.0.0)
@executable_path/../Resources/libs/libtiff.5.dylib (compatibility version 11.0.0, current version 11.0.0)
/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.11)
@executable_path/../Resources/libs/libOpenImageIO.1.8.dylib (compatibility version 1.8.0, current version 1.8.13)
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 800.7.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1281.0.0)
libOpenImageIO.1.8.dylib:
@executable_path/../Resources/libs/libOpenImageIO.1.8.dylib (compatibility version 1.8.0, current version 1.8.13)
/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.11)
@executable_path/../Resources/libs/libtiff.5.dylib (compatibility version 11.0.0, current version 11.0.0)
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 800.7.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1281.0.0)
My build from 2.5 tags, which cause PNG errors:
Code: Select all
luxcoreui:
@executable_path/../Resources/libs/libomp.dylib (compatibility version 5.0.0, current version 5.0.0)
/System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 23.0.0)
/System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0)
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1775.118.101)
/System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo (compatibility version 1.2.0, current version 1.5.0)
@executable_path/../Resources/libs/libembree3.3.dylib (compatibility version 3.0.0, current version 3.0.0)
@executable_path/../Resources/libs/libOpenImageDenoise.1.2.1.dylib (compatibility version 0.0.0, current version 1.2.1)
@executable_path/../Resources/libs/libtbb.dylib (compatibility version 0.0.0, current version 0.0.0)
@executable_path/../Resources/libs/libtiff.5.dylib (compatibility version 11.0.0, current version 11.0.0)
/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.11)
@executable_path/../Resources/libs/libOpenImageIO.1.8.dylib (compatibility version 1.8.0, current version 1.8.13)
/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 1775.118.101)
/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 905.6.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1292.100.5)
/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 2022.44.149)
/System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics (compatibility version 64.0.0, current version 1463.4.2)
luxcoreconsole:
@executable_path/../Resources/libs/libomp.dylib (compatibility version 5.0.0, current version 5.0.0)
@executable_path/../Resources/libs/libembree3.3.dylib (compatibility version 3.0.0, current version 3.0.0)
@executable_path/../Resources/libs/libOpenImageDenoise.1.2.1.dylib (compatibility version 0.0.0, current version 1.2.1)
@executable_path/../Resources/libs/libtbb.dylib (compatibility version 0.0.0, current version 0.0.0)
@executable_path/../Resources/libs/libtiff.5.dylib (compatibility version 11.0.0, current version 11.0.0)
/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.11)
@executable_path/../Resources/libs/libOpenImageIO.1.8.dylib (compatibility version 1.8.0, current version 1.8.13)
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 905.6.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1292.100.5)
libOpenImageIO.1.8.dylib:
@executable_path/../Resources/libs/libOpenImageIO.1.8.dylib (compatibility version 1.8.0, current version 1.8.13)
/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.11)
@executable_path/../Resources/libs/libtiff.5.dylib (compatibility version 11.0.0, current version 11.0.0)
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 905.6.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1292.100.5)
PS: Regarding how there is a warning message regarding libpng 1.4 vs 1.6 even though it appears to be statically linked, my current theory is that libpng uses a global static class/object with version information. If OpenImageIO library is static linked to libpng14, while the LuxCore binaries are static linked to libpng16: there may be a namespace collision in the C++ Runtime and the libpng16 static class/object is over-riding libpng14 instance of the same class. This might explain why there is a RUNTIME ERROR when reading PNG in my build of 2.5, but why is the latest 2.6 build reporting the same RUNTIME ERROR without the libpng version mismatch warning?