[原创]anjuta初体验

软件和网站开发以及相关技术探讨
回复
ubfaner
帖子: 16
注册时间: 2007-12-09 9:30

[原创]anjuta初体验

#1

帖子 ubfaner » 2007-12-15 14:42

终于开始了在linux下编程的学习,看了不少贴子,搞明白了。要用anjuta搭建个GUI IDE环境开始我的C++学习之旅。
安装anjuta的第一个问题就是......没找到libgnomemm2.0-dev。
(这是我在ubuntu中文中用来学习预留的贴子,以后慢慢增加内容。请匆跟贴,谢谢。)
附件
linuxAPI.gz
(225.91 KiB) 已下载 990 次
上次由 ubfaner 在 2007-12-15 16:27,总共编辑 3 次。
头像
mikeandmore
帖子: 109
注册时间: 2005-10-13 18:29

#2

帖子 mikeandmore » 2007-12-15 14:44

实在忍不住了。。。
sudo apt-get install anjuta
ubfaner
帖子: 16
注册时间: 2007-12-09 9:30

#3

帖子 ubfaner » 2007-12-15 15:02

第一个问题解决了。是这样的:重新安装了一个libgnomemm-2.6-dev。可是与C++相关的教程还没有找到,尤其是像Windows下的API手册那样的。下个问题就是找linux下的API相关资料。
ubfaner
帖子: 16
注册时间: 2007-12-09 9:30

#4

帖子 ubfaner » 2007-12-15 16:15

找到了一些linux API相关的资料。大家一起看看吧。我把资料放到一楼吧。


我怎么上传不了附件啊!!!!!!!!!!!


总算传上去了,原来的是pdf文件,我把后缀名强行改成gz了。
头像
mikeandmore
帖子: 109
注册时间: 2005-10-13 18:29

#5

帖子 mikeandmore » 2007-12-15 20:20

ubfaner 写了:第一个问题解决了。是这样的:重新安装了一个libgnomemm-2.6-dev。可是与C++相关的教程还没有找到,尤其是像Windows下的API手册那样的。下个问题就是找linux下的API相关资料。
兄弟。。。有个东西叫做devhelp。。。
附件
devhelp.png
ubfaner
帖子: 16
注册时间: 2007-12-09 9:30

#6

帖子 ubfaner » 2007-12-17 9:12

楼上的朋友有没有devhelp的中文资料?
我再发一些C++的,标准库教材。(大于2M,还得想办法分割成小文件,在linux下好像应该有办法的,1、可以使用dd if=a of=a.1 bs=512 count=4 dd if=a of=a.2 bs=512 skip=4
2、合并 cat a.1 a.2>a

当我用GTKmm生成程序后,编译却没有通过,提示没有找到相关的头文件。可能是安装完anjuta后没能设好linux的环境变量,这个问题没有解决。但在重新启动系统后,问题不存在了。
附件
c++标准程序库.part1.rar
(2 MiB) 已下载 180 次
c++标准程序库.part2.rar
(1.54 MiB) 已下载 1501 次
上次由 ubfaner 在 2007-12-19 0:04,总共编辑 1 次。
ubfaner
帖子: 16
注册时间: 2007-12-09 9:30

#7

帖子 ubfaner » 2007-12-18 1:23

经过n小时的学习终于完成了我第一个程序。(当然是经典的Hello!)
分两个文件
app.h和main.cc
/*********************************************
****************app.h***********************
*********************************************/
#include <libglademm/xml.h>
#include <gtkmm.h>
#include <iostream>

#ifdef ENABLE_NLS
# include <libintl.h>
#endif

#define GLADE_FILE "gtkmmapp.glade"
class Object
{
public:
int m_argc;
char* p_argv[];
public:
Object()
{}
Object(int m_a,char *p_a[])
{
m_argc=m_a;
*p_argv=*p_a;
}
~Object()
{
}
};
class Form : public Object
{
private:
Glib::RefPtr<Gnome::Glade::Xml> refXml;
Gtk::Window* main_win;// = 0;

public:
Form()
{
init();
}

int init()
{
Gtk::Main kit(&m_argc,(char***)p_argv);
try
{
refXml = Gnome::Glade::Xml::create(GLADE_FILE);
}
catch(const Gnome::Glade::XmlError& ex)
{
std::cerr << ex.what() << std::endl;
return 1;
}

refXml->get_widget("main_window", main_win);
if (main_win)
{
Gtk::Label label("Hello World!",Gtk::ALIGN_CENTER,Gtk::ALIGN_CENTER,false);
main_win->add(label);
main_win->show_all_children();
kit.run(*main_win);
}
}
~Form()
{
}
};

class Start
{
Start();
~Start()
{
}
public:
static void run(Object *myobject)
{
myobject=new Object();
}
};
/*********************************************
***************main.cc**********************
*********************************************/
#include "app.h"

//class Application
//{
/*static*/
int main(int argc, char *argv[])
{
Start::run(new Form());
return 0;
}
//};
上次由 ubfaner 在 2007-12-20 11:35,总共编辑 1 次。
ubfaner
帖子: 16
注册时间: 2007-12-09 9:30

#8

帖子 ubfaner » 2007-12-19 0:15

老是问题连连啊,anjuta在连接工程的时候又出现问题了。编译可以通过,就是不能生成工程。提示aclocal某些.m4文件有问题。花了一天时间也没有解决。上面用C#的形式改写了gtkmm程序(也没达到满意,比如使用静态入口点就不行),下面想改成类似MFC的。反复试验,发现与windows下的C++有不太一样的地方。比如程序执行时,win32程序总是先执行外部的静态的对象,然后才到Winmain入口点的。大家知道,MFC程序有一个全局唯一对象theapp。现在还没有改成功。明天再说吧。

(anjuta在连接工程的时候又出现问题了)这个问题己解决。
方法1:anjita->Project->AddSource File...-><yourfile>将yourfile手工加入工程。
方法2:打开 工程目录/src/Makefile.am在“ex_SOURCES =”添加要加入的文件名。
chencmao
帖子: 43
注册时间: 2007-11-22 19:05

#9

帖子 chencmao » 2007-12-20 22:14

找到这边,想问个问题,安装anjuta时执行./configure出错:

代码: 全选

...
...
checking for GTK... configure: error: Package requirements (gtk+-2.0 >= 2.8.0) were not met:

No package 'gtk+-2.0' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables GTK_CFLAGS
and GTK_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
我是GNOME的桌面怎么会没有GTK呢,疑惑中。。。
ubfaner
帖子: 16
注册时间: 2007-12-09 9:30

#10

帖子 ubfaner » 2007-12-23 21:50

楼上的朋友
这句话的大概意思是:没有找到程序所依赖的包:gtk+-2.0.

有以下建议:
1、可能你安装的没有使用标准配置。可以更改PKG_CONFIG_PATH环境变量。另外,也可以根据你安装GTK+的位置配置如下环境变量:GTK_CFLAGS和GTK_LIBS.将它们指向你安装的路径。更多信息请用:man pkg-config查看。
2、这个方法简单:sudo apt-get autoremove anjuta sudo apt-get install anjuta
或者直接sudo apt-get install gtk+2.0一般就会解决问题。
头像
mikeandmore
帖子: 109
注册时间: 2005-10-13 18:29

#11

帖子 mikeandmore » 2007-12-24 12:52

ubfaner 写了:老是问题连连啊,anjuta在连接工程的时候又出现问题了。编译可以通过,就是不能生成工程。提示aclocal某些.m4文件有问题。花了一天时间也没有解决。上面用C#的形式改写了gtkmm程序(也没达到满意,比如使用静态入口点就不行),下面想改成类似MFC的。反复试验,发现与windows下的C++有不太一样的地方。比如程序执行时,win32程序总是先执行外部的静态的对象,然后才到Winmain入口点的。大家知道,MFC程序有一个全局唯一对象theapp。现在还没有改成功。明天再说吧。

(anjuta在连接工程的时候又出现问题了)这个问题己解决。
方法1:anjita->Project->AddSource File...-><yourfile>将yourfile手工加入工程。
方法2:打开 工程目录/src/Makefile.am在“ex_SOURCES =”添加要加入的文件名。
学gtkmm。。。用singleton
。。。。
ubfaner
帖子: 16
注册时间: 2007-12-09 9:30

#12

帖子 ubfaner » 2007-12-24 21:44

是啊,c++并不是纯种的面向对象的语言。实现单向模式很容易。问题是我并没有设计模式的概念。老实说,我只是个“语法大约都懂了,语意大约都不懂”的初学者。不怕大家笑话。我学习编程是想看懂linux的源代码。因为我基本上看不懂别人的源码,所以就学吧。一本数据结构看了两个月了还没看完。后来就到乌班图系统下学来了。见到gtkmm觉得很好,嗯,就把在windows下的学的一点经验先搬过来吧。
上面说要改成MFC的样子。那要完成如下工作:
1、建立一个类树。Object,Sign,GuiApp,GWindow,GDocument,GView.
2、简单的仿消息映射的信号宏。
3、把main()封装起来。(这个其实和第一项工作是一起的)
回复