小编Gun*_*eoc的帖子

MinGW/MSYS 和 CMake 未定义对“libintl_gettext”的引用

我正在尝试将 gettext 添加到 C++ 项目中。它在 Linux 下编译并运行良好,但在 Windows 7 64 位中使用 MinGW32 时出现链接器错误。我正在使用 进行编译cmake -G "MSYS Makefiles" ..,因为 MinGW 由于某些模糊的原因而不起作用。我也尝试过忍者。

在 中CMakeLists.txt,我有

find_package(Gettext REQUIRED
include_directories(${GETTEXT_INCLUDE_DIR})
if (INTL_FOUND)
    find_package(INTL REQUIRED)
    include_directories(${INTL_INCLUDE_DIR})
endif()
Run Code Online (Sandbox Code Playgroud)

发现如下

 GETTEXT_INCLUDE_DIR = C:/MinGW/msys/1.0/local/include
Run Code Online (Sandbox Code Playgroud)

该项目编译没有问题,但在链接阶段,我收到以下错误:

<source file location> undefined reference to `libintl_gettext'
<source file location> undefined reference to `libintl_setlocale'
<source file location> undefined reference to `libintl_textdomain'
Run Code Online (Sandbox Code Playgroud)

ETC。

我查看了https://www.gnu.org/software/gettext/FAQ.html#integrating_undefined

并将以下内容添加到CMakeLists.txt

SET(GCC_COVERAGE_COMPILE_FLAGS "-s -O2 -lintl")
SET(GCC_COVERAGE_LINK_FLAGS    "-lintl")
SET(CMAKE_CXX_FLAGS  "${CMAKE_CXX_FLAGS} ${GCC_COVERAGE_COMPILE_FLAGS}" )
SET(CMAKE_EXE_LINKER_FLAGS  "${CMAKE_EXE_LINKER_FLAGS} 
Run Code Online (Sandbox Code Playgroud)

然后我尝试了 …

c++ windows gettext msys mingw32

6
推荐指数
1
解决办法
3801
查看次数

标签 统计

c++ ×1

gettext ×1

mingw32 ×1

msys ×1

windows ×1