[问题](新手)请问Anjuta 怎么添加 包含路径?

软件和网站开发以及相关技术探讨
回复
sickeeno2
帖子: 22
注册时间: 2007-11-12 22:10

[问题](新手)请问Anjuta 怎么添加 包含路径?

#1

帖子 sickeeno2 » 2007-11-19 16:49

我测试编译

代码: 全选

#include <gst/gst.h>
提示 No such file or directory...
我在项目(Project)里面设置项目属性——>Packpage ,添加 gstreamer-0.10 无效。。。

于是我更改

代码: 全选

#include <gstreamer-0.10/gst/gst.h>
,
这样的话,gst.h能够找到了,但gst.h里面的包含又不行了。。

我一直在想应该可以设置的,我看了makefile文件,头痛,我完全没有头绪。。。

希望有高手指点——谢谢[/code]
sickeeno2
帖子: 22
注册时间: 2007-11-12 22:10

#2

帖子 sickeeno2 » 2007-11-19 16:54

以前在Windows下用国VC,估计是毒害吧,不过里面有个环境变量的东西。。。我知道在Anjuta里面该怎么做,我在国外的网站上看了几篇跟我一样的文章,说Anjuta里面有个Add include path的对话框,可我电脑里的Anjuta没有这个东东。。。。

猜想应该在项目的配置文件里面有相关的路径字符……
头像
tipfoo
帖子: 303
注册时间: 2007-07-12 16:30
来自: 桂林

#3

帖子 tipfoo » 2007-11-20 9:20

在Anjuta 2.2.2下,点击菜单 Project > Properties,点击“Packages”选项页,按“Add Package”,选择你想要的,没有就安装相应的开发包。

如果仍不可行,点击“Variables”选项页;添加下面两个变量:

代码: 全选

变量名                       值
---------------------------------------------------------------------------------------
CPPFLAGS              `pkg-config --cflags libXXXXXX`
LDFLAGS                 `pkg-config --libs libXXXXXX`
将libXXXXXX改成你要的库。
sickeeno2
帖子: 22
注册时间: 2007-11-12 22:10

#4

帖子 sickeeno2 » 2007-11-21 0:04

谢谢楼上的解答,我的问题依然存在。。。

我的测试步骤是 新建一个C语言的Generric项目,Anjuta自动生成一个Helloword的C项目;
因为我尝试在做一个 GSteamer 的简单程序 ,代码在http://www.gstreamer.cn/data/doc/gstreamer/sta ... t.html中有原型,Code当中要包含 gst.h 文件

。。。。。我在Anjuta中的 Packages 添加了 中 gstreamer-0.10,编译出错,说找不到文件或者文件夹;遂我按照楼上朋友的方法做了,依然无效///////

偶然中,我建立一个GTK+的项目,我添加 gstreamer-0.10的Package,编译通过——恕本人无能,不明白其中的道理。。。

之后我有看了一些GStreamer的相关的文档,猜想可能是GStreamer的XXXXX依赖。。,但我添加田间GTK也失败。。。。

我没有找到关键的原因^……
sickeeno2
帖子: 22
注册时间: 2007-11-12 22:10

#5

帖子 sickeeno2 » 2007-11-21 0:25

我想了解一下Anjuta的工作原理,我现在主要是作 C 环境。。。

测试思路————如果我在Anjuta里面现建立Generic C项目,已经写了一部分程序,但之后需要用添加其他的库,比如GTK+,那么我应该怎么做呢?
测试——新建一个C语言的Generric项目——Helloword,
然后添加gtk+-2.0的Package,然后在main.c里面写入

代码: 全选

#include <gtk/gtk.h>
编译——跟我上面遇到的问题一样——找不到文件活路径。。。。晕死。

当然要说的话我用不着这样做,可以直接用Anjuta建立一个GTK+的项目。。。。但似乎这是一种不负责任的做法……[/code]
头像
tipfoo
帖子: 303
注册时间: 2007-07-12 16:30
来自: 桂林

#6

帖子 tipfoo » 2007-11-21 16:17

我想了解一下Anjuta的工作原理
你可以建立一个“Generic C”项目和一个“GTK+”项目,再对比两个工程中的“Makefile.am”、“configure.ac”及“autogen.sh”等相关文件。如果不够,还有其它的文件可在资源管理器中打开。

HOHO,反正我是不想了解了。
头像
tipfoo
帖子: 303
注册时间: 2007-07-12 16:30
来自: 桂林

#7

帖子 tipfoo » 2007-11-21 16:25

sickeeno2 写了:谢谢楼上的解答,我的问题依然存在。。。
。。。。
我没有找到关键的原因^……
忘了,接着,你是不是像下面这样执行操作的?
“生成”→“清理工程”;
“生成”→“Run Autogenerate...”;
“生成”→“Run Configure...”;
“生成”→“生成工程”。
(不好意思,那两个Run的顺序记得不是很清楚了。)
sickeeno2
帖子: 22
注册时间: 2007-11-12 22:10

#8

帖子 sickeeno2 » 2007-11-24 6:58

哎,痛苦,依然没有搞定。。
目前只有用Anjuta建立GTK项目才行,想单独加库,没有成功。。。。
其他的网站上也没有类似的例子,Anjuta的Help里也没有……
不知道我版本的问题还是其他的什么,反正这个问题对我是一个莫大的困扰——准备放弃了,看来只有认真学习makefile了……本来想用Anjuta作项目管理的,但最简单的include我都没有办法解决,小弟实在无能也。。。
头像
tipfoo
帖子: 303
注册时间: 2007-07-12 16:30
来自: 桂林

#9

帖子 tipfoo » 2007-11-24 10:53

源里有两个包,libgstreamer0.8-dev 和 libgstreamer0.10-dev。
你是不是都装了,所以产生了冲突?或者你一个都没装?

正确的应该像下面这样:

代码: 全选

~$ pkg-config --cflags gstreamer-0.10
-pthread -I/usr/include/gstreamer-0.10 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libxml2  
错误的类似:

代码: 全选

~$ pkg-config --cflags gstreamer-0.10
Package gstreamer-0.10 was not found in the pkg-config search path.
Perhaps you should add the directory containing `gstreamer-0.10.pc'
to the PKG_CONFIG_PATH environment variable
No package 'gstreamer-0.10' found
头像
tipfoo
帖子: 303
注册时间: 2007-07-12 16:30
来自: 桂林

#10

帖子 tipfoo » 2007-11-24 12:52

sickeeno2 写了:。。。。。我在Anjuta中的 Packages 添加了 中 gstreamer-0.10,编译出错,说找不到文件或者文件夹;遂我按照楼上朋友的方法做了,依然无效///////
应该就是没有进行 “Run Autogenerate...”和“Run Configure...”;你看看, 跟这里的问题一样啊!
sickeeno2 写了:偶然中,我建立一个GTK+的项目,我添加 gstreamer-0.10的Package,编译通过——恕本人无能,不明白其中的道理。。。

之后我有看了一些GStreamer的相关的文档,猜想可能是GStreamer的XXXXX依赖。。,但我添加田间GTK也失败。。。。

我没有找到关键的原因^……
gstreamer 是依赖 glib 的。当然,每当配置项目属性后,还要进行 “Run Autogenerate...”和“Run Configure...”。
sickeeno2
帖子: 22
注册时间: 2007-11-12 22:10

#11

帖子 sickeeno2 » 2007-11-25 3:55

再次感谢楼上朋友的热心解答,虽然安你的方法没有解决到实际的问题,但提醒了我。我用另一种方法基本上解决了。。

就是在建立项目时多加一个选项——激活Configure external packages的按钮,随便加一个库,比如gtk+-2.0,然后OK,之后我添加glib-2.0和gstteamer-0.10,然后按楼上朋友的方法Run Autogenerate,就可以编译了——

根据这个步骤来看,估计Anjuta在建立项目是需要设置项目是否对扩展库的支持。不知道我的分析是否正确,望老手们指正
twoyuan
帖子: 13
注册时间: 2007-06-09 2:09

#12

帖子 twoyuan » 2008-04-24 0:49

请问在project properties里面的variables页面的内容有什么用?
well645
帖子: 1
注册时间: 2008-04-25 17:10

#13

帖子 well645 » 2008-04-29 15:41

偶然看到你在论坛上讲遇到有关anjuta包含路径的问题,正好我也在做gstreamer的有关编程,跑一个简单的例子,用你提供的方法顺利地解决了我的问题,在此首先表示万分感谢,否则我可能会在这个问题卡更多时间。我之后又做了一个简单的东西,就是把测试文件源和一个播放元件连起来,用gst-launch可以直接用,现在想编成代码的形式,不过,在编译正确之后没有像在命令行里面那样直接弹出xwindow显示测试图像,不知道是什么地方出了问题。能不能指点一下阿?万分感谢。
代码如下:
#include <gst/gst.h>//相当于在命令行内输入gst-launch videotestsrc ! xvimagesink
int main (int argc, char *argv[])
{
GstElement *pipeline, *videotestsrc, *xvimagesink;
gst_init(&argc, &argv);

/* 创建一条新的管道 */
pipeline = gst_pipeline_new ("pipeline");
/* 生成用于读取硬盘数据的元件 */
videotestsrc = gst_element_factory_make ("videotestsrc", "videotestsrc");

xvimagesink = gst_element_factory_make ("xvimagesink", "xvimagesink");
/* 将生成的元件添加到管道中 */
gst_bin_add_many (GST_BIN (pipeline), videotestsrc, xvimagesink, NULL);
/* 连接各个元件 */
gst_element_link_many (videotestsrc, xvimagesink, NULL);
/* 开始播放 */
gst_element_set_state (pipeline, GST_STATE_PLAYING);

exit (0);
}
回复