From 3518df7faaa54ec88e359904e1cf79ffd8925b80 Mon Sep 17 00:00:00 2001 From: miaobyte Date: Thu, 29 Oct 2026 01:16:45 +0800 Subject: [PATCH] =?UTF-8?q?runtimec2:=20=E9=93=BE=E6=8E=A5=E7=9B=AE?= =?UTF-8?q?=E5=BD=95=E6=98=BE=E5=BC=8F=E5=8C=85=E5=90=AB=20kvspace=20?= =?UTF-8?q?=E5=89=8D=E7=AB=AF=E5=AE=89=E8=A3=85=E4=BD=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Linux 分支补 target_link_directories(/usr/lib /usr/lib/kvspace),macOS 补 /usr/local/lib;m1_smoke 同步。前端 libkvspace.so 装 /lib/kvspace (或 /usr/lib),干净树无 -L 时找不到 -lkvspace;CI 用 deps tarball 装 /usr/lib 所以之前未暴露。 验证:删除 /usr/lib 前端软链后全新 build 目录 cmake+build 通过, kvlang_runtimec2 与 m1_smoke 均链接成功。 Co-Authored-By: Claude Code --- runtimec2/CMakeLists.txt | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/runtimec2/CMakeLists.txt b/runtimec2/CMakeLists.txt index 8b10b660..ec15c2f1 100644 --- a/runtimec2/CMakeLists.txt +++ b/runtimec2/CMakeLists.txt @@ -37,14 +37,19 @@ target_compile_options(kvlang_runtimec2 PRIVATE -O3 -fno-exceptions -fno-rtti -fvisibility=hidden -fno-threadsafe-statics -Wall -Wextra) +# 链接 kvspace dispatch 前端(与后端同装 /lib/kvspace),运行期按 DSN 选后端。 +# 安装目录固定(无构建期覆盖变量):Linux 前端在 /usr/lib、后端 /usr/lib/kvspace; +# macOS 前端在 /usr/local/lib、后端 /usr/local/lib/kvspace(/usr 受 SIP 保护)。 +# 对齐 runtime/CMakeLists.txt 的 KVLANG_LINK_DIRS。 if(APPLE) - target_link_directories(kvlang_runtimec2 PRIVATE /usr/local/lib/kvspace) + target_link_directories(kvlang_runtimec2 PRIVATE /usr/local/lib /usr/local/lib/kvspace) target_link_libraries(kvlang_runtimec2 PRIVATE kvspace) set_target_properties(kvlang_runtimec2 PROPERTIES OUTPUT_NAME "kvlang_runtimec2" LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin" INSTALL_RPATH "/usr/local/lib;/usr/local/lib/kvspace") else() + target_link_directories(kvlang_runtimec2 PRIVATE /usr/lib /usr/lib/kvspace) target_link_libraries(kvlang_runtimec2 PRIVATE kvspace) set_target_properties(kvlang_runtimec2 PROPERTIES OUTPUT_NAME "kvlang_runtimec2" @@ -60,7 +65,9 @@ add_executable(m1_smoke tests/m1_smoke.c) target_include_directories(m1_smoke PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../runtime/include /usr/include) if(APPLE) - target_link_directories(m1_smoke PRIVATE /usr/local/lib/kvspace) + target_link_directories(m1_smoke PRIVATE /usr/local/lib /usr/local/lib/kvspace) +else() + target_link_directories(m1_smoke PRIVATE /usr/lib /usr/lib/kvspace) endif() target_link_libraries(m1_smoke PRIVATE kvlang_runtimec2 kvspace)