Символ не найден: _libintl_gettext

Я пытаюсь создать модуль NodeJS, используя C ++ и node-gyp, Пакет зависит от библиотеки Gettext GNU. В настоящее время я использую Mac OS X Mountain Lion. Я сам пытался установить пакет вручную, через Homebrew и даже через Fink.

Программа работает через Terminal.app и пакет компилируется. Я могу использовать .node модуль просто отлично, за исключением тех случаев, пока я не использую метод в библиотеке, которая использует gettext, Я получаю следующие ошибки в REPL, а затем REPL выходит.

dyld: lazy symbol binding failed: Symbol not found: _libintl_gettext
Referenced from: /Users/KevinMartin/Dropbox/www/node-locale/build/Release/locale.node
Expected in: dynamic lookup

dyld: Symbol not found: _libintl_gettext
Referenced from: /Users/KevinMartin/Dropbox/www/node-locale/build/Release/locale.node
Expected in: dynamic lookup

Trace/BPT trap: 5

Заранее спасибо.

2

Решение

Это, вероятно, происходит, потому что вы не перечисляете libintl как библиотека, которая будет динамически связана. Вам нужно добавить что-то вроде:

{
"targets": [
{
"target_name": "...",
"sources": ["..."],
"libraries": ["/path/to/gettext/lib/libintl.a"]
}
}

в ваш файл binding.gyp. libintl не связаны в вашем приложении, статически или динамически, поэтому вы получаете ошибку символа.

Редактировать:

Вы также можете сделать что-то вроде:

{
"targets": [{
"target_name": "...",
"sources": [
"..."],
"link_settings": {
"libraries": ["libintl.8.dylib"]
}
}]
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]