I am building cesium-native static libraries for Android, but getting a linker error when trying to call the Cesium3DTilesSelection::ViewState::create(...)
static method.
auto viewState = Cesium3DTilesSelection::ViewState::create(glm::dvec3(positionx, positiony, positionz),
glm::dvec3(directionx, directiony, directionz),
glm::dvec3(upx, upy, upz),
glm::dvec2(viewportSizex, viewportSizey),
hfov, vfov);
This compiles fine, but fails during linking. Other methods in the library link fine. Calling the same method from our Windows build works fine. The specific error we see is:
ld: error: undefined symbol: Cesium3DTilesSelection::ViewState::create(glm::vec<3, double, (glm::qualifier)0> const&, glm::vec<3, double, (glm::qualifier)0> const&, glm::vec<3, double, (glm::qualifier)0> const&, glm::vec<2, double, (glm::qualifier)0> const&, double, double, CesiumGeospatial::Ellipsoid const&)
I believe the method exists in the library because I see this in nm -C libCesium3DTilesSelection.a
output:
0000000000000000 T Cesium3DTilesSelection::ViewState::create(glm::vec<3ul, double, (glm::qualifier)0> const&, glm::vec<3ul, double, (glm::qualifier)0> const&, glm::vec<3ul, double, (glm::qualifier)0> const&, glm::vec<2ul, double, (glm::qualifier)0> const&, double, double, CesiumGeospatial::Ellipsoid const&)
Cesium-native version: 0.40.1 (we’d prefer to not bump higher due to c++20 requirement)
Android NDK: 25.1.8937393
Can anyone provide some guidance on why this might be happening?