C++ 运行本地Makefile-pkgconfig的Tesseract:权限被拒绝

C++ 运行本地Makefile-pkgconfig的Tesseract:权限被拒绝,c++,makefile,permissions,tesseract,pkg-config,C++,Makefile,Permissions,Tesseract,Pkg Config,我可以以Leptonica作为管理员运行Tesseract。但在本地运行没有管理员权限的Tesseract时存在小问题 Makefile看起来像: CC=g++ CFLAGS+=`pkg-config --cflags opencv` LDFLAGS+=`pkg-config --libs opencv` TSFLAGS+=`$(HOME)/local/lib/pkgconfig --libs $(HOME)/local/tesseract` PROG=exp .PHONY: all cle

我可以以Leptonica作为管理员运行Tesseract。但在本地运行没有管理员权限的Tesseract时存在小问题

Makefile看起来像:

CC=g++
CFLAGS+=`pkg-config --cflags opencv`
LDFLAGS+=`pkg-config --libs opencv`
TSFLAGS+=`$(HOME)/local/lib/pkgconfig --libs $(HOME)/local/tesseract`

PROG=exp

.PHONY: all clean
$(PROG):
    $(CC) -o $(PROG) $(LDFLAGS) $(TSFLAGS)

%.o: %.cpp
    $(CC) -c $(CFLAGS) $<

all: $(PROG)

clean:
    rm -f $(PROG)
我甚至尝试进一步,在makefile中我更改了TSFLAGS../lib/pkgconfig/tesseract.pc。在这之后,我看到了这个问题:

g++ -o exp `pkg-config --libs opencv` `/home/username/local/lib/pkgconfig/tesseract.pc --libs /home/username/local/tesseract`
/home/username/local/lib/pkgconfig/tesseract.pc: 4: /home/username/local/lib/pkgconfig/tesseract.pc: datarootdir: not found
/home/username/local/lib/pkgconfig/tesseract.pc: 9: /home/username/local/lib/pkgconfig/tesseract.pc: Name:: not found
/home/username/local/lib/pkgconfig/tesseract.pc: 10: /home/username/local/lib/pkgconfig/tesseract.pc: Description:: not found
/home/username/local/lib/pkgconfig/tesseract.pc: 11: /home/username/local/lib/pkgconfig/tesseract.pc: URL:: not found
/home/username/local/lib/pkgconfig/tesseract.pc: 12: /home/username/local/lib/pkgconfig/tesseract.pc: Version:: not found
/home/username/local/lib/pkgconfig/tesseract.pc: 13: /home/username/local/lib/pkgconfig/tesseract.pc: Requires.private:: not found
/home/username/local/lib/pkgconfig/tesseract.pc: 14: /home/username/local/lib/pkgconfig/tesseract.pc: Libs:: not found
/home/username/local/lib/pkgconfig/tesseract.pc: 15: /home/username/local/lib/pkgconfig/tesseract.pc: Libs.private:: not found
/home/username/local/lib/pkgconfig/tesseract.pc: 16: /home/username/local/lib/pkgconfig/tesseract.pc: Cflags:: not found
/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o: In function `_start':
(.text+0x20): undefined reference to `main'
collect2: error: ld returned 1 exit status
Makefile:11: návod pro cíl „exp“ selhal
make: *** [exp] Chyba 1
tesseract.pc在本地和具有管理员权限时看起来相同:

prefix=/home/ondrej_mrhac/local
exec_prefix=${prefix}
bindir=${exec_prefix}/bin
datarootdir = ${prefix}/share
datadir=${datarootdir}
libdir=${exec_prefix}/lib
includedir=${prefix}/include/tesseract

Name: tesseract
Description: An OCR Engine that was developed at HP Labs between 1985 and 1995... and now at Google.
URL: https://github.com/tesseract-ocr/tesseract
Version: 4.00.00dev
Requires.private: lept
Libs: -L${libdir} -ltesseract
Libs.private: -lpthread 
Cflags: -I${includedir}

你知道我做错了什么吗?

我不知道。也许您运行了
sudo./configure
,并将其绑定到一些根目录。感谢您的反应,但不幸的是没有。所有配置都没有sudo…。我的主目录中的所有文件(和文件夹层次结构)看起来都与根目录中的文件相同…顺便问一下,当你说“管理员”时,在linux中是什么意思?它运行make时是否使用了
sudo make
功能,但没有
sudo
?我正在pc上测试我的程序,我拥有所有的权限。但我的程序将在这台机器上运行,在这台机器上的权限是有限的——将由用户安装在linux服务器上。我正在运行没有sudoAh的make,这是完全不同的。很可能它与权限无关,只是在另一台机器上它缺少一些依赖性。但是,您还没有指定它是如何失败的。你能在用户的机器出现故障的地方发布准确的错误消息吗?
prefix=/home/ondrej_mrhac/local
exec_prefix=${prefix}
bindir=${exec_prefix}/bin
datarootdir = ${prefix}/share
datadir=${datarootdir}
libdir=${exec_prefix}/lib
includedir=${prefix}/include/tesseract

Name: tesseract
Description: An OCR Engine that was developed at HP Labs between 1985 and 1995... and now at Google.
URL: https://github.com/tesseract-ocr/tesseract
Version: 4.00.00dev
Requires.private: lept
Libs: -L${libdir} -ltesseract
Libs.private: -lpthread 
Cflags: -I${includedir}