gpt4 book ai didi

c++ - VeridisBiometricSDK_5.0_Linux 示例: MatchingExample 编译错误

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:26:04 24 4
gpt4 key购买 nike

我尝试使用 VeridisBiometricSDK_5.0_Linux,这是一个免费的生物识别库,其中包含我厌倦了通过完全按照自述文件所述来编译 MatchingExample 的示例: 制作MatchingExample.cpp但我有这个错误结果:

root@localhost MatchingExample]# make MatchingExample
g++ -Wall -g MatchingExample.cpp -o ../../../bin/MatchingExample -I../../../include/ -L../../../lib/ -lVrBio -lpthread -ludev -lusb -lusb-1.0 -ldl
MatchingExample.cpp: In function ‘int main()’:
MatchingExample.cpp:47: warning: deprecated conversion from string constant to ‘char*’
MatchingExample.cpp:55: warning: deprecated conversion from string constant to ‘char*’
/usr/bin/ld: warning: libtiff.so.4, needed by ../../../lib//libVrBio.so, not found (try using -rpath or -rpath-link)
../../../lib//libVrBio.so: undefined reference to `TIFFWriteScanline'
../../../lib//libVrBio.so: undefined reference to `TIFFDefaultStripSize'
../../../lib//libVrBio.so: undefined reference to `__fdelt_chk@GLIBC_2.15'
../../../lib//libVrBio.so: undefined reference to `_TIFFmalloc'
../../../lib//libVrBio.so: undefined reference to `memcpy@GLIBC_2.14'
../../../lib//libVrBio.so: undefined reference to `TIFFClose'
../../../lib//libVrBio.so: undefined reference to `TIFFSetErrorHandler'
../../../lib//libVrBio.so: undefined reference to `TIFFGetField'
../../../lib//libVrBio.so: undefined reference to `_TIFFfree'
../../../lib//libVrBio.so: undefined reference to `TIFFClientOpen'
../../../lib//libVrBio.so: undefined reference to `TIFFSetField'
../../../lib//libVrBio.so: undefined reference to `TIFFReadDirectory'
../../../lib//libVrBio.so: undefined reference to `TIFFSetWarningHandler'
../../../lib//libVrBio.so: undefined reference to `TIFFReadRGBAImageOriented'
collect2: ld returned 1 exit status
make: *** [MatchingExample] Error 1
==================================================
this is the Makefile codes:
# ------------------ Compilation options ------------------------
# Loads libraries.
LIBS = -lVrBio -lpthread -ludev -lusb -lusb-1.0 -ldl

# Flags for the C compiler:
# -Wall for strict gcc warnings (requires prototypes for all functions).
# -g to produce debug data for gdb
# -O for optimization
CFLAGS = -Wall -g

CC = g++
# --------------------- Directory Paths ----------------------------

INC_DIRS = -I../../../include/

LIB_DIRS = -L../../../lib/

BIN_DIR = ../../../bin/

# --------------------- Code modules ----------------------------

# Object files
#OBJ =

# Definitions
#DEFS =
# ------------------------ Rules --------------------------------

$@.cpp: $@.cpp
${CC} $(CFLAGS) $@.cpp -o $(BIN_DIR)$@ $(INC_DIRS) $(LIB_DIRS) $(LIBS)
==========================
aslo this is the ReadMe file content
In the AsyncCaptureExample folder there is a Makefile. This Makefile can be used for all the
other cpp examples.

编译使用:make

例如:制作AsyncCaptureExample

输出将在 bin 文件夹中生成。

这也是 VeridisBiometricSDK_5.0 自述文件:1 - 安装必要的包: *libudev *libusb *libusb-1.0 *fxload2 - 在 misc 文件夹中有程序访问 USB 所需的文件,扩展名为 .rules。复制它们 到/etc/udev/rules.d 文件夹或等效文件夹

3 - mkdir/usr/share/usb 并在那里复制 misc 文件夹的 .hex 文件4 - 将 LD_LIBRARY_PATH 设置为 .so 文件的路径

5 - 将 misc 文件夹中的 UFLicense.dat 文件复制到您的应用程序的文件夹中 如果您使用 suprema 阅读器。

你能帮帮我吗?

更新

我非常接近解决我的问题:首先,我在以下链接中找到了为 Ubuntu 安装 libtiff.so.4 的解决方案: https://askubuntu.com/questions/457011/why-is-libtiff-so-4-not-recognized其次,我使用 alien 工具将相同的 Ubuntu 库包转换为 centos rpm,如下所示:外星人-r -g libtiff4_3.9.7-2ubuntu1_amd64.deb第三,我在我的 Centos 6.7 上安装了 libtiff4-3.9.7-3.x86_64.rpm(这是外星人转换的结果)它安装成功但是当尝试制作我的样本时我超大了 libtiff.so.4 需要 2 个库

[root@localhost]# readelf  -d  /usr/lib/x86_64-linux-gnu/libtiff.so.4
0x0000000000000001 (NEEDED) Shared library: [libjbig.so.0]
0x0000000000000001 (NEEDED) Shared library: [libjpeg.so.8]

我从 jpegsrc.v8.tar.gz 的源代码库安装了 libjpeg.so.8,它运行良好 但是我找不到任何合适的包来修复丢失的 libbig.so.0 库 那么你能帮我修复这个丢失的库吗…… 顺便说一下,当我解决我的问题时,我会解释所有的解决方案,这样它对任何人都有用

最佳答案

终于解决了我的问题如果您阅读我的问题,您就会知道我的问题缺少 libtiff.so.4

我修好了,我的解决方案步骤如下第一的如果您使用此命令隐藏当前的 libtiff.so

[yaserco@localhost Desktop]$ locate libtiff.so
/usr/lib64/libtiff.so.3

所以我创建了指向 libtiff.so.3 的符号链接(symbolic link)

ln -s /usr/lib64/libtiff.so.3 /usr/lib64/libtiff.so.4

在我测试我的样本后,它显示了这 2 条错误消息尝试了这个解决方案:首先创建符号链接(symbolic link) ln -s/usr/lib64/libtiff.so.3.9.4/usr/lib64/libtiff.so.4 然后我执行命令 [root@localhost MatchingExample]# make MatchingExample 它有一个错误结果为:

MatchingExample.cpp: In function ‘int main()’:
MatchingExample.cpp:47: warning: deprecated conversion from
string constant to ‘char*’ MatchingExample.cpp:55: warning: deprecated

conversion from string constant to ‘char*’ ../../../lib//libVrBio.so:

undefined reference to __fdelt_chk@GLIBC_2.15' ../../../lib//libVrBio.so:
undefined reference to memcpy@GLIBC_2.14'

第二个我通过安装解决了这个错误

一个-glibc for (GLIBC_2.14) 如下:

cd /tmp
wget http://ftp.gnu.org/gnu/glibc/glibc-2.16.0.tar.gz
tar -xvzf glibc-2.16.0.tar.gz
cd glibc-2.16.0
mkdir glibc-build
cd glibc-build
../configure --prefix='/usr'

B-

我们必须修正一个小错字,所以运行:

nano +171 ../scripts/test-installation.pl

and replace if (/$ld_so_name/) { with if (/\Q$ld_so_name\E/) {
:

make
sudo make install

查看此链接的更多内容 https://github.com/FezVrasta/ark-server-tools/wiki/Install-of-required-versions-of-glibc-and-gcc-on-RHEL-CentOS然后当我编译我的示例时它运行良好

关于c++ - VeridisBiometricSDK_5.0_Linux 示例: MatchingExample 编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34883968/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com