C++ 运行C++;节目

C++ 运行C++;节目,c++,c++11,gdb,C++,C++11,Gdb,我的目录(即/home/ayush/Desktop/xapian-patch/xapian/xapian-letor/bin)中的文件列表为 我能够运行命令/xapian准备培训文件--db=/home/ayush/Documents/data/db/home/ayush/Documents/data/query.txt/home/ayush/Documents/data/qrel.txt/home/ayush/Documents/data/sample3.txt 但是,当我试图通过GDB运行相

我的目录(即/home/ayush/Desktop/xapian-patch/xapian/xapian-letor/bin)中的文件列表为

我能够运行命令
/xapian准备培训文件--db=/home/ayush/Documents/data/db/home/ayush/Documents/data/query.txt/home/ayush/Documents/data/qrel.txt/home/ayush/Documents/data/sample3.txt

但是,当我试图通过GDB运行相同的命令时

gdb --args xapian-prepare-trainingfile --db=/home/ayush/Documents/data/db /home/ayush/Documents/data/query.txt /home/ayush/Documents/data/qrel.txt /home/ayush/Documents/data/sample3.txt
我得到了错误

"/home/ayush/Desktop/xapian-patch/xapian/xapian-letor/bin/xapian-prepare-trainingfile": not in executable format: File format not recognized
< P> >我想知道如何运行C++命令,我可以通过GDB

无问题地运行。
gdb --args xapian-prepare-trainingfile --db=/home/ayush/Documents/data/db /home/ayush/Documents/data/query.txt /home/ayush/Documents/data/qrel.txt /home/ayush/Documents/data/sample3.txt
“/home/ayush/Desktop/xapian-patch/xapian/xapian-letor/bin/xapian-prepare-trainingfile”:非可执行格式:无法识别文件格式

上述错误最可能的原因是
/xapian prepare trainingfile
是一个shell脚本,而不是一个可执行文件

您可以通过运行
文件xapian和准备培训文件
来确认这一点

如果是shell脚本,则需要运行:

bash -x ./xapian-prepare-trainingfile ...
找出它最终调用的实际可执行文件,并进行调试

另一种方法是:复制一份xapian prepare Training File,编辑它,然后在脚本
exec
s实际二进制文件之前插入
gdb--args