Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The library conflicts with X11 #323

Closed
lotosprogrammer opened this issue Mar 15, 2023 · 4 comments
Closed

The library conflicts with X11 #323

lotosprogrammer opened this issue Mar 15, 2023 · 4 comments
Assignees

Comments

@lotosprogrammer
Copy link

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;
      |       ^~~~~~~~~~~~~~~~~

@DanielChappuis
Copy link
Owner

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.

@DanielChappuis DanielChappuis added this to the Release v1.0.0 milestone Mar 17, 2023
@DanielChappuis DanielChappuis self-assigned this Mar 17, 2023
@ZeunO8
Copy link

ZeunO8 commented May 9, 2023

Include rp3d before x11 solves the issue

@samthedev32
Copy link

Also undefining "None" before including reactphysics works, but i would not recommend doing it this way

@DanielChappuis
Copy link
Owner

This is now fixed in version v0.10.0 of the library. Thanks a lot for reporting the issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants