Linux下Eclipse&CDT&g++编译生成的文件无法执行

FFFrog 2006-06-04 07:08:49
最近开始接触Linux,想在Linux下学习C++编程。之前在Win下比较习惯Eclipse,用起来也挺顺。

现在转到Ubuntu平台下,用Eclipse 3.2 RC6 + CDT 3.1。自己写了一个简单的程序,也写了相应的makefile,编译可以通过,在C/C++ Projects中也看到了生成的.o文件和Binary文件,但是却无法运行!用“Run”的话控制台就直接显示"terminated",没有任何输出(我的程序中写了用cout输出的语句),用"Debug"的话,在进入Debug视图之前就会有几句控制台信息出现,进去之后如果直接点Resume的话,程序不顾我设置的断点就直接运行完毕了,之后控制台中一个字也看不到,没有我程序中写好的输出,连之前哪几句控制台信息也不见了。如果进入Debug视图之后点Step Over的话,点两次程序就运行完毕了,仍然没有预计的输出,但得到如下控制台信息:
No symbol "new" in current context.
No source file named calc1_7.cpp.
No source file named calc1_7.cpp.
Stopped due to shared library event
No source file named calc1_7.cpp.
No source file named calc1_7.cpp.
Stopped due to shared library event
Stopped due to shared library event
Single stepping until exit from function main,
which has no line number information.
Single stepping until exit from function _Z7calc1_7Pii,
which has no line number information.

从信息的内容看来,系统似乎没有找到我的源代码。在Debug视图中实际上是显示了calc1_7.cpp的代码的,但是没有看到运行指针指向代码中的任一行。变量表中也没有显示任何内容。

我从终端进入工程所在目录,用ls能显示出绿色的没有后缀的calc1_7文件(应该就是可执行文件吧?),但是我敲入calc1_7命令之后,终端却显示bash: calc1_7: command not found!这又是怎么回事呢?

刚才,我怀疑是文件名的问题,把所有文件名中的"_"都去掉了(如calc1_7.cpp改成calc.cpp)再进行编译,现在程序运行的结构还是和之前一样,倒是Debug视图中真的看不见我的源代码了!而Debug之后返回的控制台信息中却不见了"No source file named"之类的信息。奇怪!


我怀疑是自己的代码写得有问题,又导入《Thinking in C++》中的源代码(自带makefile),编译运行。运行的结果是:有些程序能够正常执行和输出,而另一些也象我的程序一样直接terminated了!而似乎对其中所有的程序进行Debug,都不能进入Debug视图,而是弹出一个名为Launching的窗口,里面有这样的错误信息:
Failed to set program arguments, environment or working directory.
Unable to set working directory: mi_cmd_env_cd: Usage DIRECTORY
Unable to set working directory: mi_cmd_env_cd: Usage DIRECTORY
Unable to set working directory: mi_cmd_env_cd: Usage DIRECTORY
《Thinking in C++》里的代码,我在Windows+Eclipse下已经用过好久,都很正常的,不知为何现在也出现问题!


我还是初学Linux和C++,现在这个问题搞得我很郁闷。原本在Windows下挺顺利的事情,究竟是因为什么原因而变成这样呢?请大家帮忙看看,谢谢啦!
...全文
1207 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ReverseEngineering 2006-12-23
  • 打赏
  • 举报
回复
只懂点WIN32没玩过LINUX
happytang 2006-06-05
  • 打赏
  • 举报
回复
看一下cdt的说明文档,http://liangqiushi.bokee.com/4945350.html
而且eclipse+cdt很不稳定,设置也很麻烦,
命令:在当前目录下用./xxx,或者用整个路径/。。 /。。/xx
benfire 2006-06-05
  • 打赏
  • 举报
回复
我从终端进入工程所在目录,用ls能显示出绿色的没有后缀的calc1_7文件(应该就是可执行文件吧?),但是我敲入calc1_7命令之后,终端却显示bash: calc1_7: command not found!这又是怎么回事呢?
-----------------------------------

Linux 默认方式是不在当前的目录下搜索文件的,所以你在当前目录下执行程序,必须用路径,例如:

在目录 /home/my 里面有一个可执行程序 file,输入 ./file,回车,则运行当前目录下的 file 程序
或者用全部路径名 /home/my/file 也可以

还是先学学 Linux 的一些基本操作吧

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧