未知的glibc版本"Aspose.Words.Cpp/CodePorting.Translator.Cs2Cpp.Framework/src/cmake/GuessCompilerPrefix.cmake:55 (message): Unknown glibc version: Aspose.Words.Cpp/CodePorting.Translator.Cs2Cpp.Framework/src/cmake/GuessCompilerPrefix.cmake"

使用的Ubuntu22.04, Aspose.Words.Cpp 23.8, cmake 3.22.1,gcc11.3.0 查询了glibc的版本ldd (Ubuntu GLIBC 2.35-0ubuntu3) 2.35

出现fatal的代码是下面这样,匹配不了"^[0-9.]+$":

if(NOT libc_version MATCHES "^[0-9.]+$")
   message(FATAL_ERROR "Unknown glibc version: ${GLIBC_VERSION}")
endif()

※这里${libc_version}的值为libc.6

自己项目中的代码是这样的:

find_package(CodePorting.Translator.Cs2Cpp.Framework REQUIRED CONFIG)

始终是未知的glibc版本怎么解决呢

以非find_package的方式导入到自己的cmake项目中

project ("main")

set(ASPOSE_WORDS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/Aspose.Words.Cpp") #这里是设置Aspose.Words.Cpp的根目录
set(ASPOSE_WORDS_CPP "${ASPOSE_WORDS_DIR}/Aspose.Words.Cpp")
set(ASPOSE_WORDS_CODE_PORTING_CPP "${ASPOSE_WORDS_DIR}/CodePorting.Translator.Cs2Cpp.Framework")
set(ASPOSE_WORDS_SHAPING_CPP "${ASPOSE_WORDS_DIR}/Aspose.Words.Shaping.HarfBuzz.Cpp")

# 略

include_directories(
	${ASPOSE_WORDS_CPP}/include
	${ASPOSE_WORDS_CODE_PORTING_CPP}/include
	${ASPOSE_WORDS_CPP}/include
)
link_directories(
	${LOCAL_LIB_DIR}
	${ASPOSE_WORDS_CPP}/lib
	${ASPOSE_WORDS_CODE_PORTING_CPP}/lib
	${ASPOSE_WORDS_SHAPING_CPP}/lib
)
# 链接Aspose.Words.Cpp的动态库
target_link_libraries(${PROJECT_NAME} PUBLIC 
libcodeporting.translator.cs2cpp.framework_x86_64_libstdcpp_libc2.23.so
libAspose.Words.Shaping.HarfBuzz.Cpp.so 
libAspose.Words.Cpp.so
) 

@BingAlpha, 感谢您报告此问题。 我们已经在我们的内部问题跟踪系统中打开了以下新工单,并将根据 免费支持政策 中提到的条款提供它们的修复:

Issue ID(s): WORDSCPP-1251

如果您需要优先支持以及直接联系我们的付费支持管理团队,您可以获得 付费支持服务

1 Like

@BingAlpha, 看来该程序没有权限检测系统上安装的glibc版本。 要解决此问题,请在终端中运行以下命令:

chmod 755 /path_to_libc/libc.so.6

就我而言,path_to_libc=lib/x86_64-linux-gnu