我试图调试一个开源软件包,在Eclipse中调用libprotoident,在Debian中调用Kepler版本。由于它有Makefile,我选择创建一个空的Makefile项目,然后将所有源添加到工作区中。所以在那之后,源代码使用Makefile在命令行中成功编译并运行。 由于它有4个可以使用的应用程序,我选择在运行配置窗口中运行lpi_protoident包,如下图所示。
所以程序运行成功。现在我尝试调试它,但它会产生以下错误。
如何解决此错误并调试项目?
答案 0 :(得分:1)
您尝试调试的文件很可能是由automake创建的shell脚本,它充当真实可执行文件的包装器,该可执行文件已构建在隐藏目录中。
不要告诉Eclipse tools/protoident/lpi_protoident
是您的应用,而是尝试使用tools/protoident/.libs/lpi_protoident
。
答案 1 :(得分:0)
not in executable format: File format not reconized
错误意味着lpi_protoident
不是您正在使用的平台上的可执行文件。
你确定这是一个可以运行的可执行文件(例如从命令行)吗?
您使用的GDB与可执行文件在某种程度上不兼容的可能性也很小,但这种可能性较小。
(假设您正在尝试构建https://github.com/wanduow/libprotoident)
您正在尝试构建一个automake项目。正常的方法是配置创建Makefile
,你不应该自己创建makefile。请参阅项目中的README,但您需要做的关键部分是:
安装
安装完所需的库后,运行以下一系列命令应安装libprotoident
./bootstrap.sh (only if you've cloned the source from GitHub) ./configure make make install
默认情况下,libprotoident安装到/ usr / local - 这可以更改 通过将.prefix =选项附加到./configure。
libprotoident工具默认构建 - 可以通过改变 使用 --with-tools = ./configure没有选项。