我无法获取配置脚本来识别通过Homebrew安装的pango库,这些库是培训工具的依赖项。到目前为止,我已经执行了此处详细介绍的所有步骤:
https://github.com/tesseract-ocr/tesseract/issues/1453
在这里:
https://github.com/tesseract-ocr/tesseract/wiki/Compiling#macos
运行配置脚本后,我继续在输出中得到以下警告:
正在检查pango> = 1.22.0 ...否
配置:警告:需要pango 1.22.0或更高版本,但不是必需的 找到。
配置:警告:将不会构建培训工具。
配置:警告:尝试安装libpango1.0-dev软件包。
正在检查开罗...否
配置:警告:由于以下原因,将无法构建培训工具 缺少开罗图书馆。
配置:警告:尝试安装libcairo-dev?包。
库位于/usr/local/Cellar/pango/1.42.4_1
我已尝试按照上述说明运行配置脚本:
./configure CPPFLAGS=-I/usr/local/opt/icu4c/include LDFLAGS=-L/usr/local/opt/icu4c/lib
,以及尝试将路径添加到链接标志:
./configure LDFLAGS="-L/usr/local/opt/icu4c/lib -L/usr/local/Cellar/pango/1.42.4_1/lib" CPPFLAGS="-I/usr/local/opt/icu4c/include"
我仍然无法获取脚本来查看库。
预先感谢您提供有关如何解决此问题的建议。
答案 0 :(得分:2)
它看起来像 pango 和/或 cairo ,也许其他库依赖于 libffi 。 libffi 在Homebrew中被称为仅桶装。即使已安装libffi,也不会通过符号链接进行链接。当 pkg-config 尝试查找库时,它还会检查其依赖项。由于无法找到 libffi ,因此 pkg-config 表示 cairo 不可用。因此,需要致电
brew link libffi --force
这应该可以解决问题,而无需付出任何额外的努力。至少它对我的情况有用。
答案 1 :(得分:1)
我通过在libffi和icu4c下复制pkgconfig文件来解决此问题
(通过在终端中输入brew brew libffi icu4c查找路径)
并将它们粘贴到/ usr / local / lib / pkgconfig,然后设置
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
答案 2 :(得分:0)
这是我发现的问题的最优雅的解决方案:
Loggers.general().debug(LOG, "### getOKTAToken()...");
String OKTAresponse = "";
OKTAResponse oktaReply = new OKTAResponse();
HttpClient httpClient = HttpClientBuilder.create().build();
Loggers.general().debug(LOG, "### ipsum");
//pass webservice URL
Loggers.general().debug(LOG, "URL:{}",Constants.URL);
HttpPost httpPost = new HttpPost(Constants.URL);
ArrayList<NameValuePair> postParameters;
//required keys for OKTA call
Loggers.general().debug(LOG, "Setting Body");
postParameters = new ArrayList<NameValuePair>();
postParameters.add(new BasicNameValuePair("client_id",
Constants.clientID));
postParameters.add(new BasicNameValuePair("client_secret",
Constants.clientSecret));
postParameters.add(new BasicNameValuePair("grant_type",
Constants.grantType));
try
{
Loggers.general().debug(LOG, "Setting entity...");
httpPost.setEntity(new UrlEncodedFormEntity(postParameters,"UTF-8"));
HttpResponse response = httpClient.execute(httpPost);
https://github.com/tesseract-ocr/tesseract/wiki/TrainingTesseract-4.00#on-macos-mojave-with-homebrew
答案 3 :(得分:0)
这是鲍里斯(Boris)提供的答案的修改版本[鲍里斯(Boris:请说出这个词,我会删除它)。
在macOS 10.13.6 High Sierra上进行了测试。
以前没有答案对我有用-我必须在鲍里斯(Boris)给出的冲泡要求中明确添加libpng
:
brew install cairo pango icu4c autoconf libffi libarchive libpng
export PKG_CONFIG_PATH=\
$(brew --prefix)/lib/pkgconfig:\
$(brew --prefix)/opt/libarchive/lib/pkgconfig:\
$(brew --prefix)/opt/icu4c/lib/pkgconfig:\
$(brew --prefix)/opt/libffi/lib/pkgconfig:\
$(brew --prefix)/opt/libpng/lib/pkgconfig
./configure
注意:如果您已经具备以上条件,则可能希望运行brew reinstall
来代替brew install
,否则会损坏其他项目。
我不需要向configure
提供任何标志。
当然,目标是要编译培训工具,以便可以使用combine_tessdata
,wordlist2dawg
,dawg2wordlist
等(我在任何地方都没有找到适用于这些的macOS二进制文件)
完整说明如下:
git clone git@github.com:tesseract-ocr/tesseract.git
git checkout tags/4.1.0
cd tesseract
./autogen.sh
brew install cairo pango icu4c autoconf libffi libarchive libpng
export PKG_CONFIG_PATH=\
$(brew --prefix)/lib/pkgconfig:\
$(brew --prefix)/opt/libarchive/lib/pkgconfig:\
$(brew --prefix)/opt/icu4c/lib/pkgconfig:\
$(brew --prefix)/opt/libffi/lib/pkgconfig:\
$(brew --prefix)/opt/libpng/lib/pkgconfig
./configure
make -j
sudo make install
# -> You should now have access to tesseract
make training
sudo make training-install
# -> You should now have access to the training tools: combine_tessdata, wordlist2dawg, dawg2wordlist, etc.
# If not, check /usr/local/bin/ is on your PATH, i.e.
export PATH=/usr/local/bin/:$PATH
脚注:我如何诊断libpng问题:
如上所述和here所引发的错误不是很有帮助:
make training
Need to reconfigure project, so there are no errors
深入研究configure
会引起以下警告:
configure: WARNING: pango 1.22.0 or higher is required, but was not found.
configure: WARNING: Training tools WILL NOT be built.
configure: WARNING: Try to install libpango1.0-dev package.
checking for cairo... no
configure: WARNING: Training tools WILL NOT be built because of missing cairo library.
configure: WARNING: Try to install libcairo-dev?? package.
checking that generated files are newer than configure... done
我也有一个cairo
因此,您必须在调试模式下运行configure
:
./configure --enable-debug
然后通过config.log
检查grep
(例如)来检查pango
:
$PKG_CONFIG --exists --print-errors "pango >= 1.22.0"
这是在执行configure
时引发警告的行。
您现在可以手动执行最后一行:
pkg-config --exists --print-errors pango
dyld: Symbol not found: __cg_png_create_info_struct
Referenced from: /System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO
Expected in: /usr/local/lib/libPng.dylib
in /System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO
Abort trap: 6
这就是我追查libpng
原因的方式。 (在我的情况下,我不得不reinstall
/重新link
libpng
,因为与gnuplot
/ octave
/ aquaterm
相关的各种长期冲突等。
有人吗p>