From 981ca0fa022524fd04af988bc798f2d697d31548 Mon Sep 17 00:00:00 2001
From: lichao <lichao@aiotlink.com>
Date: 星期三, 19 五月 2021 14:33:10 +0800
Subject: [PATCH] hide .so symbols, avoid 2+ protobuf link conflict.

---
 src/CMakeLists.txt       |    5 +++--
 src/exported_symbols     |   23 +++++++++++++++++++++++
 proto/cpp/CMakeLists.txt |    7 ++-----
 3 files changed, 28 insertions(+), 7 deletions(-)

diff --git a/proto/cpp/CMakeLists.txt b/proto/cpp/CMakeLists.txt
index 1399af0..aa312d8 100644
--- a/proto/cpp/CMakeLists.txt
+++ b/proto/cpp/CMakeLists.txt
@@ -1,14 +1,11 @@
 cmake_minimum_required(VERSION 3.0)
 
 set (Target "bhome_msg")
-set (TargetStatic "bhome_msg_static")
 project(${Target})
 
 find_package(Protobuf REQUIRED)
 file(GLOB proto_files ../source/*.proto)
 PROTOBUF_GENERATE_CPP(PROTO_SRCS PROTO_HDRS ${proto_files})
 
-add_library(${Target} SHARED ${PROTO_SRCS})
-add_library(${TargetStatic} STATIC ${PROTO_SRCS})
-target_link_libraries(${Target} protobuf-lite)
-target_link_libraries(${TargetStatic} libprotobuf-lite.a)
+add_library(${Target} STATIC ${PROTO_SRCS})
+target_link_libraries(${Target} libprotobuf-lite.a)
\ No newline at end of file
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index e04328d..8d9de26 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -4,11 +4,12 @@
 set(Target bhome_shmq)
 set(TargetStatic bhome_shmq_static)
 
+set(CMAKE_SHARED_LINKER_FLAGS  ${CMAKE_SHARED_LINKER_FLAGS} "-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/exported_symbols")
 include_directories(../log)
 add_library(${Target} SHARED ${sources})
 add_library(${TargetStatic} STATIC ${sources})
 
 set(LogLibs "boost_log;boost_log_setup;boost_thread;boost_filesystem")
 
-target_link_libraries(${Target} bhome_msg_static ${LogLibs} pthread rt)
-target_link_libraries(${TargetStatic} bhome_msg_static ${LogLibs} pthread rt)
+target_link_libraries(${Target} bhome_msg ${LogLibs} pthread rt)
+target_link_libraries(${TargetStatic} bhome_msg ${LogLibs} pthread rt)
diff --git a/src/exported_symbols b/src/exported_symbols
new file mode 100644
index 0000000..3351da9
--- /dev/null
+++ b/src/exported_symbols
@@ -0,0 +1,23 @@
+VERS_1.0 {
+global:
+	BHApiIn1Out1Proxy;
+	BHRegister;
+	BHUnregister;
+	BHRegisterTopics;
+	BHQueryTopicAddress;
+	BHSubscribeTopics;
+	BHStartWorker;
+	BHHeartbeatEasy;
+	BHHeartbeat;
+	BHPublish;
+	BHReadSub;
+	BHAsyncRequest;
+	BHRequest;
+	BHReadRequest;
+	BHSendReply;
+	BHCleanup;
+	BHGetLastError;
+	BHFree;
+local:
+	*;
+};

--
Gitblit v1.8.0