The library conflicts with X11
lotosprogrammer opened this issue · comments
I am using Ubuntu 22.04.2 LTS. With 525 proprietary nvidia drivers. The 2 header files seemingly cause a conflict, but correct me if I'm wrong.
And my X11 version.
version number: 11.0
X.Org version: 1.21.1.3
Now my error messages, by the looks of it these 2 are somehow incompatible but I may be wrong so please correct me if I am.
./In file included from /usr/include/X11/Xlib.h:44,
from src/main.cpp:8:
/usr/include/reactphysics3d/collision/narrowphase/CollisionDispatch.h:43:5: error: expected identifier before numeric constant
43 | None,
| ^~~~
/usr/include/reactphysics3d/collision/narrowphase/CollisionDispatch.h:43:5: error: expected ‘}’ before numeric constant
In file included from /usr/include/reactphysics3d/collision/narrowphase/NarrowPhaseInput.h:32,
from /usr/include/reactphysics3d/systems/CollisionDetectionSystem.h:40,
from /usr/include/reactphysics3d/engine/PhysicsWorld.h:49,
from /usr/include/reactphysics3d/engine/PhysicsCommon.h:31,
from /usr/include/reactphysics3d/reactphysics3d.h:42,
from src/include/Level.hpp:9,
from src/main.cpp:18:
/usr/include/reactphysics3d/collision/narrowphase/CollisionDispatch.h:42:37: note: to match this ‘{’
42 | enum class NarrowPhaseAlgorithmType {
| ^
In file included from /usr/include/X11/Xlib.h:44,
from src/main.cpp:8:
/usr/include/reactphysics3d/collision/narrowphase/CollisionDispatch.h:43:5: error: expected unqualified-id before numeric constant
43 | None,
| ^~~~
In file included from /usr/include/reactphysics3d/collision/narrowphase/NarrowPhaseInput.h:32,
from /usr/include/reactphysics3d/systems/CollisionDetectionSystem.h:40,
from /usr/include/reactphysics3d/engine/PhysicsWorld.h:49,
from /usr/include/reactphysics3d/engine/PhysicsCommon.h:31,
from /usr/include/reactphysics3d/reactphysics3d.h:42,
from src/include/Level.hpp:9,
from src/main.cpp:18:
/usr/include/reactphysics3d/collision/narrowphase/CollisionDispatch.h:63:9: error: ‘MemoryAllocator’ does not name a type
63 | MemoryAllocator& mAllocator;
| ^~~~~~~~~~~~~~~
/usr/include/reactphysics3d/collision/narrowphase/CollisionDispatch.h:84:9: error: ‘SphereVsSphereAlgorithm’ does not name a type
84 | SphereVsSphereAlgorithm* mSphereVsSphereAlgorithm;
| ^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/reactphysics3d/collision/narrowphase/CollisionDispatch.h:87:9: error: ‘CapsuleVsCapsuleAlgorithm’ does not name a type
87 | CapsuleVsCapsuleAlgorithm* mCapsuleVsCapsuleAlgorithm;
| ^~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/reactphysics3d/collision/narrowphase/CollisionDispatch.h:90:9: error: ‘SphereVsCapsuleAlgorithm’ does not name a type
90 | SphereVsCapsuleAlgorithm* mSphereVsCapsuleAlgorithm;
| ^~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/reactphysics3d/collision/narrowphase/CollisionDispatch.h:93:9: error: ‘SphereVsConvexPolyhedronAlgorithm’ does not name a type
93 | SphereVsConvexPolyhedronAlgorithm* mSphereVsConvexPolyhedronAlgorithm;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/reactphysics3d/collision/narrowphase/CollisionDispatch.h:96:9: error: ‘CapsuleVsConvexPolyhedronAlgorithm’ does not name a type
96 | CapsuleVsConvexPolyhedronAlgorithm* mCapsuleVsConvexPolyhedronAlgorithm;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/reactphysics3d/collision/narrowphase/CollisionDispatch.h:99:9: error: ‘ConvexPolyhedronVsConvexPolyhedronAlgorithm’ does not name a type
99 | ConvexPolyhedronVsConvexPolyhedronAlgorithm* mConvexPolyhedronVsConvexPolyhedronAlgorithm;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/reactphysics3d/collision/narrowphase/CollisionDispatch.h:102:9: error: ‘NarrowPhaseAlgorithmType’ does not name a type
102 | NarrowPhaseAlgorithmType mCollisionMatrix[NB_COLLISION_SHAPE_TYPES][NB_COLLISION_SHAPE_TYPES];
| ^~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/reactphysics3d/collision/narrowphase/CollisionDispatch.h:106:9: error: ‘NarrowPhaseAlgorithmType’ does not name a type
106 | NarrowPhaseAlgorithmType selectAlgorithm(int type1, int type2);
| ^~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/reactphysics3d/collision/narrowphase/CollisionDispatch.h:118:42: error: expected ‘)’ before ‘&’ token
118 | CollisionDispatch(MemoryAllocator& allocator);
| ~ ^
| )
/usr/include/reactphysics3d/collision/narrowphase/CollisionDispatch.h:124:41: error: ‘SphereVsSphereAlgorithm’ has not been declared
124 | void setSphereVsSphereAlgorithm(SphereVsSphereAlgorithm* algorithm);
| ^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/reactphysics3d/collision/narrowphase/CollisionDispatch.h:127:9: error: ‘SphereVsSphereAlgorithm’ does not name a type
127 | SphereVsSphereAlgorithm* getSphereVsSphereAlgorithm();
| ^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/reactphysics3d/collision/narrowphase/CollisionDispatch.h:130:42: error: ‘SphereVsCapsuleAlgorithm’ has not been declared
130 | void setSphereVsCapsuleAlgorithm(SphereVsCapsuleAlgorithm* algorithm);
| ^~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/reactphysics3d/collision/narrowphase/CollisionDispatch.h:133:9: error: ‘SphereVsCapsuleAlgorithm’ does not name a type
133 | SphereVsCapsuleAlgorithm* getSphereVsCapsuleAlgorithm();
| ^~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/reactphysics3d/collision/narrowphase/CollisionDispatch.h:136:43: error: ‘CapsuleVsCapsuleAlgorithm’ has not been declared
136 | void setCapsuleVsCapsuleAlgorithm(CapsuleVsCapsuleAlgorithm* algorithm);
| ^~~~~~~~~~~~~~~~~~~~~~~~~
a/usr/include/reactphysics3d/collision/narrowphase/CollisionDispatch.h:139:9: error: ‘CapsuleVsCapsuleAlgorithm’ does not name a type
139 | CapsuleVsCapsuleAlgorithm* getCapsuleVsCapsuleAlgorithm();
| ^~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/reactphysics3d/collision/narrowphase/CollisionDispatch.h:142:51: error: ‘SphereVsConvexPolyhedronAlgorithm’ has not been declared
142 | void setSphereVsConvexPolyhedronAlgorithm(SphereVsConvexPolyhedronAlgorithm* algorithm);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/reactphysics3d/collision/narrowphase/CollisionDispatch.h:145:9: error: ‘SphereVsConvexPolyhedronAlgorithm’ does not name a type
145 | SphereVsConvexPolyhedronAlgorithm* getSphereVsConvexPolyhedronAlgorithm();
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/reactphysics3d/collision/narrowphase/CollisionDispatch.h:148:52: error: ‘CapsuleVsConvexPolyhedronAlgorithm’ has not been declared
148 | void setCapsuleVsConvexPolyhedronAlgorithm(CapsuleVsConvexPolyhedronAlgorithm* algorithm);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/reactphysics3d/collision/narrowphase/CollisionDispatch.h:151:9: error: ‘CapsuleVsConvexPolyhedronAlgorithm’ does not name a type
151 | CapsuleVsConvexPolyhedronAlgorithm* getCapsuleVsConvexPolyhedronAlgorithm();
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/reactphysics3d/collision/narrowphase/CollisionDispatch.h:154:61: error: ‘ConvexPolyhedronVsConvexPolyhedronAlgorithm’ has not been declared
154 | void setConvexPolyhedronVsConvexPolyhedronAlgorithm(ConvexPolyhedronVsConvexPolyhedronAlgorithm* algorithm);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/reactphysics3d/collision/narrowphase/CollisionDispatch.h:157:9: error: ‘ConvexPolyhedronVsConvexPolyhedronAlgorithm’ does not name a type
157 | ConvexPolyhedronVsConvexPolyhedronAlgorithm* getConvexPolyhedronVsConvexPolyhedronAlgorithm();
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/reactphysics3d/collision/narrowphase/CollisionDispatch.h:163:9: error: ‘NarrowPhaseAlgorithmType’ does not name a type
163 | NarrowPhaseAlgorithmType selectNarrowPhaseAlgorithm(const CollisionShapeType& shape1Type,
| ^~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/reactphysics3d/collision/narrowphase/CollisionDispatch.h:176:19: error: ‘SphereVsSphereAlgorithm’ does not name a type
176 | RP3D_FORCE_INLINE SphereVsSphereAlgorithm* CollisionDispatch::getSphereVsSphereAlgorithm() {
| ^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/reactphysics3d/collision/narrowphase/CollisionDispatch.h:181:19: error: ‘SphereVsCapsuleAlgorithm’ does not name a type
181 | RP3D_FORCE_INLINE SphereVsCapsuleAlgorithm* CollisionDispatch::getSphereVsCapsuleAlgorithm() {
| ^~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/reactphysics3d/collision/narrowphase/CollisionDispatch.h:186:19: error: ‘CapsuleVsCapsuleAlgorithm’ does not name a type
186 | RP3D_FORCE_INLINE CapsuleVsCapsuleAlgorithm* CollisionDispatch::getCapsuleVsCapsuleAlgorithm() {
| ^~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/reactphysics3d/collision/narrowphase/CollisionDispatch.h:191:19: error: ‘SphereVsConvexPolyhedronAlgorithm’ does not name a type
191 | RP3D_FORCE_INLINE SphereVsConvexPolyhedronAlgorithm* CollisionDispatch::getSphereVsConvexPolyhedronAlgorithm() {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/reactphysics3d/collision/narrowphase/CollisionDispatch.h:196:19: error: ‘CapsuleVsConvexPolyhedronAlgorithm’ does not name a type
196 | RP3D_FORCE_INLINE CapsuleVsConvexPolyhedronAlgorithm* CollisionDispatch::getCapsuleVsConvexPolyhedronAlgorithm() {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/reactphysics3d/collision/narrowphase/CollisionDispatch.h:201:19: error: ‘ConvexPolyhedronVsConvexPolyhedronAlgorithm’ does not name a type
201 | RP3D_FORCE_INLINE ConvexPolyhedronVsConvexPolyhedronAlgorithm* CollisionDispatch::getConvexPolyhedronVsConvexPolyhedronAlgorithm() {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/reactphysics3d/collision/narrowphase/NarrowPhaseInput.h:32,
from /usr/include/reactphysics3d/systems/CollisionDetectionSystem.h:40,
from /usr/include/reactphysics3d/engine/PhysicsWorld.h:49,
from /usr/include/reactphysics3d/engine/PhysicsCommon.h:31,
from /usr/include/reactphysics3d/reactphysics3d.h:42,
from src/include/Level.hpp:9,
from src/main.cpp:18:
/usr/include/reactphysics3d/collision/narrowphase/CollisionDispatch.h:221:1: error: expected declaration before ‘}’ token
221 | }
| ^
In file included from /usr/include/reactphysics3d/systems/CollisionDetectionSystem.h:40,
from /usr/include/reactphysics3d/engine/PhysicsWorld.h:49,
from /usr/include/reactphysics3d/engine/PhysicsCommon.h:31,
from /usr/include/reactphysics3d/reactphysics3d.h:42,
from src/include/Level.hpp:9,
from src/main.cpp:18:
/usr/include/reactphysics3d/collision/narrowphase/NarrowPhaseInput.h: In member function ‘void reactphysics3d::NarrowPhaseInput::addNarrowPhaseTest(reactphysics3d::uint64, reactphysics3d::Entity, reactphysics3d::Entity, reactphysics3d::CollisionShape*, reactphysics3d::CollisionShape*, const reactphysics3d::Transform&, const reactphysics3d::Transform&, reactphysics3d::NarrowPhaseAlgorithmType, bool, reactphysics3d::LastFrameCollisionInfo*, reactphysics3d::MemoryAllocator&)’:
/usr/include/reactphysics3d/collision/narrowphase/NarrowPhaseInput.h:137:40: error: ‘SphereVsSphere’ is not a member of ‘reactphysics3d::NarrowPhaseAlgorithmType’
137 | case NarrowPhaseAlgorithmType::SphereVsSphere:
| ^~~~~~~~~~~~~~
/usr/include/reactphysics3d/collision/narrowphase/NarrowPhaseInput.h:140:40: error: ‘SphereVsCapsule’ is not a member of ‘reactphysics3d::NarrowPhaseAlgorithmType’
140 | case NarrowPhaseAlgorithmType::SphereVsCapsule:
| ^~~~~~~~~~~~~~~
/usr/include/reactphysics3d/collision/narrowphase/NarrowPhaseInput.h:143:40: error: ‘CapsuleVsCapsule’ is not a member of ‘reactphysics3d::NarrowPhaseAlgorithmType’
143 | case NarrowPhaseAlgorithmType::CapsuleVsCapsule:
| ^~~~~~~~~~~~~~~~
/usr/include/reactphysics3d/collision/narrowphase/NarrowPhaseInput.h:146:40: error: ‘SphereVsConvexPolyhedron’ is not a member of ‘reactphysics3d::NarrowPhaseAlgorithmType’
146 | case NarrowPhaseAlgorithmType::SphereVsConvexPolyhedron:
| ^~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/reactphysics3d/collision/narrowphase/NarrowPhaseInput.h:149:40: error: ‘CapsuleVsConvexPolyhedron’ is not a member of ‘reactphysics3d::NarrowPhaseAlgorithmType’
149 | case NarrowPhaseAlgorithmType::CapsuleVsConvexPolyhedron:
| ^~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/reactphysics3d/collision/narrowphase/NarrowPhaseInput.h:152:40: error: ‘ConvexPolyhedronVsConvexPolyhedron’ is not a member of ‘reactphysics3d::NarrowPhaseAlgorithmType’
152 | case NarrowPhaseAlgorithmType::ConvexPolyhedronVsConvexPolyhedron:
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/X11/Xlib.h:44,
from src/main.cpp:8:
/usr/include/reactphysics3d/collision/narrowphase/NarrowPhaseInput.h:155:40: error: expected unqualified-id before numeric constant
155 | case NarrowPhaseAlgorithmType::None:
| ^~~~
In file included from /usr/include/reactphysics3d/systems/CollisionDetectionSystem.h:40,
from /usr/include/reactphysics3d/engine/PhysicsWorld.h:49,
from /usr/include/reactphysics3d/engine/PhysicsCommon.h:31,
from /usr/include/reactphysics3d/reactphysics3d.h:42,
from src/include/Level.hpp:9,
from src/main.cpp:18:
/usr/include/reactphysics3d/collision/narrowphase/NarrowPhaseInput.h:155:38: error: expected ‘:’ before numeric constant
155 | case NarrowPhaseAlgorithmType::None:
| ^
| :
/usr/include/reactphysics3d/collision/narrowphase/NarrowPhaseInput.h:155:44: error: expected ‘;’ before ‘:’ token
155 | case NarrowPhaseAlgorithmType::None:
| ^
In file included from /usr/include/reactphysics3d/engine/PhysicsWorld.h:49,
from /usr/include/reactphysics3d/engine/PhysicsCommon.h:31,
from /usr/include/reactphysics3d/reactphysics3d.h:42,
from src/include/Level.hpp:9,
from src/main.cpp:18:
/usr/include/reactphysics3d/systems/CollisionDetectionSystem.h: At global scope:
/usr/include/reactphysics3d/systems/CollisionDetectionSystem.h:91:27: error: field ‘mCollisionDispatch’ has incomplete type ‘reactphysics3d::CollisionDispatch’
91 | CollisionDispatch mCollisionDispatch;
| ^~~~~~~~~~~~~~~~~~
In file included from /usr/include/reactphysics3d/collision/ContactPair.h:32,
from /usr/include/reactphysics3d/collision/CollisionCallback.h:31,
from /usr/include/reactphysics3d/engine/PhysicsWorld.h:44,
from /usr/include/reactphysics3d/engine/PhysicsCommon.h:31,
from /usr/include/reactphysics3d/reactphysics3d.h:42,
from src/include/Level.hpp:9,
from src/main.cpp:18:
/usr/include/reactphysics3d/engine/OverlappingPairs.h:48:7: note: forward declaration of ‘class reactphysics3d::CollisionDispatch’
48 | class CollisionDispatch;
| ^~~~~~~~~~~~~~~~~
Thanks. Yes, it has already been reported in issue #311.
It's proably because the enum value 'NONE' is not protected behind a namespace in X11 library. I might need to rename this enum value NarrowPhaseAlgorithmType::NONE in the code.
Include rp3d before x11 solves the issue
Also undefining "None" before including reactphysics works, but i would not recommend doing it this way
This is now fixed in version v0.10.0 of the library. Thanks a lot for reporting the issue.