1
0
mirror of synced 2025-11-06 03:20:55 +08:00

生成静态库 libidgen.a 需要编译为位置无关代码

This commit is contained in:
fuzhufang
2024-01-24 15:44:44 +08:00
parent 10bc667f0e
commit a8fe5ab028

View File

@@ -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})