找不到符号:_libintl_gettext 我尝试用C++和节点GYP创建NoDEJS模块。该包依赖于GNU的Gettext库。我目前正在使用Mac OS X Mountain Lion。我曾尝试通过手动、自制甚至Fink来安装该软件包
该程序通过Terminal.app运行,程序包可编译。我可以很好地使用找不到符号:_libintl_gettext 我尝试用C++和节点GYP创建NoDEJS模块。该包依赖于GNU的Gettext库。我目前正在使用Mac OS X Mountain Lion。我曾尝试通过手动、自制甚至Fink来安装该软件包,c++,macos,node.js,gettext,dyld,C++,Macos,Node.js,Gettext,Dyld,该程序通过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 Expec
.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
提前感谢。这可能是因为您没有将
libintl
列为要动态链接的库。您需要添加以下内容:
{
"targets": [
{
"target_name": "...",
"sources": ["..."],
"libraries": ["/path/to/gettext/lib/libintl.a"]
}
}
{
"targets": [{
"target_name": "...",
"sources": [
"..."
],
"link_settings": {
"libraries": ["libintl.8.dylib"]
}
}]
}
到binding.gyp文件libintl
在你的应用程序中没有被静态或动态链接,这就是你得到符号错误的原因
编辑:
您可能还可以执行以下操作:
{
"targets": [
{
"target_name": "...",
"sources": ["..."],
"libraries": ["/path/to/gettext/lib/libintl.a"]
}
}
{
"targets": [{
"target_name": "...",
"sources": [
"..."
],
"link_settings": {
"libraries": ["libintl.8.dylib"]
}
}]
}
不确定您是否找到了解决方案,可能是libedit可以提供符号。@Vishal这对我不起作用。在过去的几天里,libintl成了我最可怕的噩梦。