Eclipse 中的 Makefile 项目可以运行,但不能调试,为什么?
Makefile project in Eclipse can be run but cannot be debug, why?
我在 eclipse 中导入了一个"现有代码作为 makefile 项目"项目。它可以正常构建和运行,但 Eclipse 报告了许多错误并且无法调试。
我尝试了以下方法:
- 在路径和符号中添加"/usr/include"。
- 运行 C/C++代码分析。
- C/C++ 索引 ==> 重建和刷新所有文件。 但它们都没有区别。
有关我的问题的详细信息如下: 大多数错误是"符号xxx无法解析">以及几个头文件无法解析,它们是<stdarg.h>
,<sys/types.h>
,<sys/wait.h>
和<sys/stat.h>
。但是,我可以正常构建和运行它。但是当我调试它时,Eclipse 找不到main()
函数,如下所示: Eclipse 中的信息
有没有人遇到过同样的问题?谢谢。
当您从现有Makefile
导入 eclipse 中的项目时,您需要依赖用于构建可执行文件的编译器选项来生成可运行项。 如果在编译时不放置调试选项,则可能无法源调试可执行文件。 您可能需要一个特殊的目标或一些选项来传递给 eclipse 发出的make
命令,以使您的构建包含必要的-g
和-O0
选项,以使可执行文件可调试。
您确信项目正在正确构建吗?在"项目属性"的"C/C++生成"对话框中,确保指定了正确的生成目录。它应该是生成文件所在的目录。请验证,构建命令会为您的项目生成 .elf 文件。你能分享你的制作文件吗?
[抱歉,此回复不适合作为答案,但作为答案发布,因为我是新用户,无法在其他人的帖子上发表评论]
相关文章:
- 是否可以将函数导入命名空间,但不能导出它?
- std::unique_ptr 在 GCC 中工作,但不能在 Visual Studio 中编译
- 声明C++具有动态大小的数组类型在 Linux 中工作正常,但不能在 Windows 中工作
- 为什么我可以隐式地将字符*转换为常量字符*,但不能将无符号字符*
- 发布版本中的 Qt 隐形组合框(但不在调试版本中)
- std::chrono::d uration 可以按秒初始化,但不能按毫秒初始化?
- Python/C++:可以导入犰狳(arma::)但不能导入子程序arma::arma_rng::randn
- 为什么我可以从C++文件中读取 int 值,但不能浮点?
- C++程序在将 int 与 cin 一起使用时有效,但不能使用字符串
- SqLite c++,可以创建数据库,但不能将 anthing 插入到表中
- std::remove() 按预期处理文字,但不能与取消引用的迭代器一起工作
- 16 位系统中的程序如何访问大于 65535 的整数,但不能访问地址
- C++:返回本地对象,但不能正常工作
- c++ 矢量提取方法在发布中返回 nullptr,但不返回调试
- Eclipse 中的 Makefile 项目可以运行,但不能调试,为什么?
- ActiveX OCX可以在释放模式内置时注册,但不能在调试模式下注册
- 可以从命令行运行C++代码,但不能从visual studio中的调试模式运行
- 简单的OpenCV命令可以在调试模式下工作,但不能在发布模式下工作
- VS2010构建了一个exe,但不能调试它,抱怨它找不到它
- 我的程序得到一个abort()错误,但我不能调试它,因为它是程序的一个加载部分