From b45f7c5f959623fed71f4dfbe5eb3a8022bec3b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?N=C3=A9stor=20Subir=C3=B3n?= Date: Fri, 6 Sep 2019 17:04:54 +0200 Subject: [PATCH] Allow compiling client-side with GCC (#2056) * Allow compiling client-side with GCC * Merge branch 'master' into nsubiron/gcc --- Examples/CppClient/Makefile | 4 ++-- LibCarla/source/carla/Platform.h | 2 +- LibCarla/source/carla/client/detail/ActorFactory.cpp | 4 ++-- LibCarla/source/carla/client/detail/ActorState.h | 4 ++-- LibCarla/source/carla/sensor/s11n/LidarMeasurement.h | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Examples/CppClient/Makefile b/Examples/CppClient/Makefile index 5230175d9..1223e374d 100644 --- a/Examples/CppClient/Makefile +++ b/Examples/CppClient/Makefile @@ -4,8 +4,8 @@ BINDIR=$(CURDIR)/bin INSTALLDIR=$(CURDIR)/libcarla-install TOOLCHAIN=$(CURDIR)/ToolChain.cmake -CC=/usr/bin/clang-7 -CXX=/usr/bin/clang++-7 +CC=/usr/bin/gcc-7 +CXX=/usr/bin/g++-7 CXXFLAGS=-std=c++14 -pthread -fPIC -O3 -DNDEBUG -Werror -Wall -Wextra define log diff --git a/LibCarla/source/carla/Platform.h b/LibCarla/source/carla/Platform.h index ac39ab04f..60222730d 100644 --- a/LibCarla/source/carla/Platform.h +++ b/LibCarla/source/carla/Platform.h @@ -9,7 +9,7 @@ #if defined(_MSC_VER) # define LIBCARLA_FORCEINLINE __forceinline # define LIBCARLA_NOINLINE __declspec(noinline) -#elif defined(__clang__) +#elif defined(__clang__) || defined(__GNUC__) # if defined(NDEBUG) # define LIBCARLA_FORCEINLINE inline __attribute__((always_inline)) # else diff --git a/LibCarla/source/carla/client/detail/ActorFactory.cpp b/LibCarla/source/carla/client/detail/ActorFactory.cpp index a4b7ef790..f0b30452c 100644 --- a/LibCarla/source/carla/client/detail/ActorFactory.cpp +++ b/LibCarla/source/carla/client/detail/ActorFactory.cpp @@ -48,12 +48,12 @@ namespace detail { "exception thrown while trying to garbage collect Actor", ptr->GetDisplayId(), e.what()); - throw; // calls terminate. + std::terminate(); } catch (...) { log_critical( "unknown exception thrown while trying to garbage collect an Actor :", ptr->GetDisplayId()); - throw; // calls terminate. + std::terminate(); } } } diff --git a/LibCarla/source/carla/client/detail/ActorState.h b/LibCarla/source/carla/client/detail/ActorState.h index d4f62a7b8..c1f6f94f3 100644 --- a/LibCarla/source/carla/client/detail/ActorState.h +++ b/LibCarla/source/carla/client/detail/ActorState.h @@ -55,6 +55,8 @@ namespace detail { protected: + explicit ActorState(rpc::Actor description, EpisodeProxy episode); + const geom::BoundingBox &GetBoundingBox() const { return _description.bounding_box; } @@ -75,8 +77,6 @@ namespace detail { friend class Simulator; - explicit ActorState(rpc::Actor description, EpisodeProxy episode); - rpc::Actor _description; EpisodeProxy _episode; diff --git a/LibCarla/source/carla/sensor/s11n/LidarMeasurement.h b/LibCarla/source/carla/sensor/s11n/LidarMeasurement.h index 150c22e68..37d984b4a 100644 --- a/LibCarla/source/carla/sensor/s11n/LidarMeasurement.h +++ b/LibCarla/source/carla/sensor/s11n/LidarMeasurement.h @@ -65,7 +65,7 @@ namespace s11n { } void SetHorizontalAngle(float angle) { - _header[Index::HorizontalAngle] = reinterpret_cast(angle); + std::memcpy(&_header[Index::HorizontalAngle], &angle, sizeof(uint32_t)); } uint32_t GetChannelCount() const {