From a8fe5ab0284711686139bb97e38f87589c4beecd Mon Sep 17 00:00:00 2001 From: fuzhufang Date: Wed, 24 Jan 2024 15:44:44 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=9F=E6=88=90=E9=9D=99=E6=80=81=E5=BA=93?= =?UTF-8?q?=20libidgen.a=20=E9=9C=80=E8=A6=81=E7=BC=96=E8=AF=91=E4=B8=BA?= =?UTF-8?q?=E4=BD=8D=E7=BD=AE=E6=97=A0=E5=85=B3=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- C/source/CMakeLists.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/C/source/CMakeLists.txt b/C/source/CMakeLists.txt index 2628ab0..3191f13 100644 --- a/C/source/CMakeLists.txt +++ b/C/source/CMakeLists.txt @@ -8,6 +8,10 @@ set(CMAKE_C_STANDARD 11) aux_source_directory(. DIR_SRCS) add_subdirectory(idgen) +# 在idgen部分增加-fPIC选项 +# 原因是由于在生成静态库 libidgen.a 时,SnowWorkerM1.c.o中的某些符号(这里是 ThreadMutex)没有被正确地编译为位置无关代码(Position Independent Code, PIC)。对于共享库,所有包含的代码都必须是位置无关的,以便能够在内存中任意位置加载 +target_compile_options(idgen PRIVATE -fPIC) + #编译动态库 set(LIB_SRC YitIdHelper.h YitIdHelper.c) add_library(YitIdGenLib SHARED ${LIB_SRC})