libiconv 和 MacOS

2024-02-10

我正在尝试在 Mac OS X Lion 中编译 GCC 4.5.1。

我的 libiconv 有问题。首先,它抱怨架构 x86_64 的未定义符号,它们是:_iconv、_iconv_open 和 _iconv_close。我发现 MacPorts 版本的 libiconv 将它们重命名为:_libiconv、_libiconv_open 和 _libiconv_close。因此,我链接到 /usr/lib 中的 Mac OS 本机 libiconv,而不是 /opt/local/lib 中的 MacPorts 库。

Undefined symbols for architecture x86_64:
"_iconv", referenced from:
  _convert_using_iconv in libcpp.a(charset.o)
  __nl_find_msg in libintl.a(dcigettext.o)
 (maybe you meant: __cpp_destroy_iconv, _cpp_init_iconv )
"_iconv_close", referenced from:
  __cpp_destroy_iconv in libcpp.a(charset.o)
  __cpp_convert_input in libcpp.a(charset.o)
  __nl_free_domain_conv in libintl.a(loadmsgcat.o)
"_iconv_open", referenced from:
  _init_iconv_desc in libcpp.a(charset.o)
  __nl_init_domain_conv in libintl.a(loadmsgcat.o)

然而,在这样做之后,我尝试从头开始重建它(清理和所有内容),但随后它在不同的点抱怨未定义的符号,但这次是 _libiconv、_libiconv_open 和 _libiconv_close。

Undefined symbols for architecture x86_64:
  "_libiconv", referenced from:
    _identifier_to_locale in libbackend.a(pretty-print.o)
  "_libiconv_close", referenced from:
    _identifier_to_locale in libbackend.a(pretty-print.o)
  "_libiconv_open", referenced from:
    _identifier_to_locale in libbackend.a(pretty-print.o)

我有什么想法可以处理这个问题吗?我找到了一些从 MacPorts 卸载 libiconv 的解决方案,但我不想这样做,因为我有很多端口依赖于它。


我通过以下方式解决了它:

$ sudo port -f deactivate libiconv
$ ...build my project...
$ sudo port activate libiconv

可能有更好的方法,但我不直接使用 GCC,所以这作为临时解决方法很有帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

libiconv 和 MacOS 的相关文章

  • 为什么要在项目中使用#include_next?

    引用iOS有关包装器标头的文档 http developer apple com library ios documentation DeveloperTools gcc 4 0 1 cpp Wrapper Headers html inc
  • __libc_start_main 发生了什么?

    我真的很想理解从高级代码到可执行文件的步骤 但是遇到了一些困难 我写了一个空的int main C 文件并尝试通过以下方式破译反汇编objdump d 这是发生的事情 in start 设置对齐方式 将参数压入堆栈 调用 libc star
  • 有没有办法将 fopen_s() 与 GCC 一起使用,或者至少创建一个 #define ?

    MSVC 编译器说fopen 已弃用 建议使用fopen s 有什么办法可以使用吗fopen s 并且仍然便携 任何想法 define 微软的 s函数是不可移植的 我通常使用等效的 C89 C99 函数并禁用弃用警告 define CRT
  • 软件预取手动指令合理的场景

    我读过有关 x86 和 x86 64 Intel 的内容gcc提供特殊的预取指令 include
  • Fedora 21 带 clang,不带 gcc

    你能 合理地 让 Fedora 21 变得只有 llvm clang libc libc abi 吗 我发现有些东西暗示不可以 但它们都已经有 3 岁了 从那时起 llvm clang 已经取得了长足的进步 通过全新安装 我尝试了 yum
  • 在64位操作系统上以32位模式和64位模式编译ioctl函数的执行有什么不同?

    我有 64 位 Enterprise SuSE 11 我有一个应用程序 它打开 HIDRAW 设备并在其上操作 ioctl 函数以从该设备获取原始信息 如下所示 struct hidraw devinfo devinfo int fd op
  • 与 Ruby 1.9.X 中的 Iconv.conv("UTF-8//IGNORE",...) 等效吗?

    我正在从远程源读取数据 偶尔会得到另一种编码的一些字符 它们并不重要 我想得到一个 最佳猜测 utf 8 字符串 并忽略无效数据 主要目标是获得一个我可以使用的字符串 并且不会遇到以下错误 编码 UndefinedConversionErr
  • GCC 和 -Wconversion

    让我们编译以下程序 int main uint16 t data 0 data uint16 t std round 3 14f return 0 with g Wconversion prog cpp 我们会得到warning conve
  • 将阿拉伯文本分配给 R 变量

    R 无法正确显示阿拉伯文本 当我使用阿拉伯语时 我得到了非常奇怪的东西 这是一个屏幕截图 问题是我想创建一个带有阿拉伯文本的词云 我需要首先解决这个问题 R 版本 R 2 15 2 GUI 1 53 Leopard 版本 64 位 6335
  • 使用 OpenMP 编译会导致内存泄漏

    根据 valgrind 的说法 使用 OpenMP 编译简单的 hello world 程序时可能会导致内存泄漏 这是没有意义的 因为 hello world 程序并没有有意使用任何 OpenMP 功能 假设下面的程序名为hi c并根据 g
  • 分析 ELF 部分和符号大小的工具

    我需要一种方法来分析 ARM 的 GCC 编译器的输出文件 我正在为裸机进行编译 并且我非常关心大小 我可以用arm none eabi objdump由交叉编译器提供 但如果存在用于此任务的工具 则解析输出并不是我渴望做的事情 您知道存在
  • 使用 iconv 将 UTF-16BE 转换为无 BOM 的 UTF-8

    我正在尝试使用 iconv 将 UTF 16BE 编码文件 字节顺序标记 0xFE 0xFF 转换为 UTF 8 如下所示 iconv f UTF 16BE t UTF 8 myfile txt 然而 生成的输出具有 UTF 8 字节顺序标
  • 'goto *foo' 其中 foo 不是指针。这是什么?

    我正在玩标签作为值 https gcc gnu org onlinedocs gcc Labels as Values html并最终得到这段代码 int foo 0 goto foo 我的 C C 经验告诉我 foo means dere
  • 如何将输入传递到扩展汇编中?

    考虑这段代码 来自我的先前的问题 https stackoverflow com questions 37955538 segfault on movq instruction int main asm movq 100000000 rcx
  • 编译器如何实现位域运算?

    当询问如何做的问题时包裹 N 位有符号减法 https stackoverflow com questions 8309538 integer subtraction with wrap around for n bits我得到了以下答案
  • 避免 gcc 函数序言开销?

    我最近遇到了很多 gcc 在 x86 上生成非常糟糕的代码的函数 它们都符合以下模式 if some condition do something really simple and return else something comple
  • 为什么pow函数比简单运算慢?

    从我的一个朋友那里 我听说 pow 函数比简单地将底数乘以它的指数的等价函数要慢 例如 据他介绍 include
  • C语言中如何通过内存地址映射函数名和行号?

    如何用 GCC 中的内存地址映射回函数名称和行号 即假设一个 C 语言原型 void func Get the address of caller maybe this could be avoided MemoryAddress get
  • Clang 3.2 构建在构建 gcc 4.7 后损坏

    所以我知道 Clang 大多数时候 依赖于 Gnu 的 libstdc 3 但是在构建 gcc 4 7 0 因为太棒了 之后 我似乎遇到了问题 clang 的所有路径都是错误的 我是否需要清理我的构建目录并从头开始使用 clang 特别是它
  • XCode 4.2.1 在 Lion 10.7.2 上启动时崩溃

    这周我买了大约 10 年来的第一台 Mac 是的 这是一台二手 Mac Pro 2x2GHz 双核 Xeon 2GB RAM 它全新安装了 Mac OS X Lion 10 7 2 我只安装了 OmniOutlner Pro Textmat

随机推荐