undefined symbol when linking to fwRenderOgre
Summary
Link to fwRenderOgre leads to an undefined symbol fwRenderOgre::vr::RayTracingVolumeRenderer::s_PROXY_GEOMETRY_RQ_GROUP
Steps to reproduce
Compile fwRenderOgreTest
Dev environment
- OS: Linux
- CMake version: 3.12
- Compiler: gcc 7.3
- Build type: debug
- Commit: sight: dev
What is the current bug behavior?
[22/32] Linking CXX executable bin/fwRenderOgreTest-0.0
FAILED: bin/fwRenderOgreTest-0.0
: && /usr/bin/g++-7 -Wall -Wextra -Wconversion -Wno-unused-parameter -Wno-ignored-qualifiers -fvisibility=hidden -fdiagnostics-color -march=native -msse4.2 -mfpmath=sse -g -D_DEBUG -rdynamic fwRenderOgreTest/CMakeFiles/fwRenderOgreTest.dir/tu/src/CameraTest.cpp.o fwRenderOgreTest/CMakeFiles/fwRenderOgreTest.dir/tu/src/MeshTest.cpp.o fwRenderOgreTest/CMakeFiles/fwRenderOgreTest.dir/tu/src/SceneTest.cpp.o fwRenderOgreTest/CMakeFiles/fwRenderOgreTest.dir/tu/src/ShadingTest.cpp.o fwRenderOgreTest/CMakeFiles/fwRenderOgreTest.dir/tu/src/TextTest.cpp.o fwRenderOgreTest/CMakeFiles/fwRenderOgreTest.dir/tu/src/UtilsTest.cpp.o fwRenderOgreTest/CMakeFiles/fwRenderOgreTest.dir/src/cppunit_main.cpp.o -o bin/fwRenderOgreTest-0.0 -Wl,-rpath,/home/mschweitzer/dev/Sight/build/debug/lib/sight:/home/mschweitzer/dev/Sight/deps/install/debug/lib lib/sight/libfwTest.so.0.1 lib/sight/libfwRenderOgre.so.0.1 /home/mschweitzer/dev/Sight/deps/install/debug/lib/libcppunit.so lib/sight/libfwDataTools.so.0.1 lib/sight/libarData.so.0.1 lib/sight/libfwRender.so.0.1 lib/sight/libfwGui.so.0.1 lib/sight/libfwLog.so.0.1 lib/sight/libfwPreferences.so.0.1 lib/sight/libfwServices.so.0.1 lib/sight/libfwActivities.so.0.1 lib/sight/libfwDataCamp.so.0.1 lib/sight/libfwMath.so.0.1 lib/sight/libfwMedData.so.0.1 lib/sight/libfwData.so.0.1 lib/sight/libfwMemory.so.0.1 lib/sight/libfwCom.so.0.1 lib/sight/libfwTools.so.0.1 lib/sight/libfwCamp.so.0.1 /home/mschweitzer/dev/Sight/deps/install/debug/lib/libcamp.so lib/sight/libfwRuntime.so.0.3 -lxml2 lib/sight/libfwThread.so.0.1 lib/sight/libfwCore.so.0.1 /home/mschweitzer/dev/Sight/deps/install/debug/lib/libboost_log.so /home/mschweitzer/dev/Sight/deps/install/debug/lib/libboost_filesystem.so /home/mschweitzer/dev/Sight/deps/install/debug/lib/libboost_thread.so /home/mschweitzer/dev/Sight/deps/install/debug/lib/libboost_date_time.so -lpthread /home/mschweitzer/dev/Sight/deps/install/debug/lib/libboost_regex.so /home/mschweitzer/dev/Sight/deps/install/debug/lib/libboost_chrono.so /home/mschweitzer/dev/Sight/deps/install/debug/lib/libboost_system.so /home/mschweitzer/dev/Sight/deps/install/debug/lib/libboost_atomic.so /home/mschweitzer/dev/Sight/deps/install/debug/lib/libboost_log_setup.so -L/home/mschweitzer/dev/Sight/deps/install/debug/lib /home/mschweitzer/dev/Sight/deps/install/debug/lib/libOgreMeshLodGenerator.so.1.11.2 /home/mschweitzer/dev/Sight/deps/install/debug/lib/libOgreOverlay.so.1.11.2 /home/mschweitzer/dev/Sight/deps/install/debug/lib/libOgrePaging.so.1.11.2 /home/mschweitzer/dev/Sight/deps/install/debug/lib/libOgreProperty.so.1.11.2 /home/mschweitzer/dev/Sight/deps/install/debug/lib/libOgreMain.so.1.11.2 -lpthread /home/mschweitzer/dev/Sight/deps/install/debug/lib/libboost_regex.so -lGL -lGLU && :
lib/sight/libfwRenderOgre.so.0.1 : référence indéfinie vers « fwRenderOgre::vr::RayTracingVolumeRenderer::s_PROXY_GEOMETRY_RQ_GROUP »
collect2: error: ld returned 1 exit status
What is the expected correct behavior?
It seems that the
static const std::uint8_t s_PROXY_GEOMETRY_RQ_GROUP = 101;
should be declared outside the class RayTracingVolumeRenderer
, since this is how it it used in ImportanceDrivenVolumeRenderer.cpp
line 162.
Relevant logs and/or screenshots
(Paste any relevant logs - please use code blocks (```) to format console output, logs, and code as it's very hard to read otherwise.)
Possible fixes
Declare the static const outside the class should resolve the issue.