免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 2664 | 回复: 10

c语言里面怎么得到安装时prefix设置的值? [复制链接]

论坛徽章:
0
发表于 2009-05-20 20:22 |显示全部楼层
我们都知道,在./configure的时候可以指定--prefix
问一下,c语言里面该怎样得到这个值呢?
ps,我用的是libtool产生的configure。

谢谢!

[ 本帖最后由 huachong 于 2009-5-21 12:00 编辑 ]

论坛徽章:
0
发表于 2009-05-21 12:00 |显示全部楼层
:wink: :wink:
顶起来。。。

论坛徽章:
0
发表于 2009-05-21 13:43 |显示全部楼层

回复 #2 huachong 的帖子

这个值在你运行完configure以后的某个生成文件中,找到它就可以了

论坛徽章:
0
发表于 2009-05-21 14:04 |显示全部楼层
一般会写在Makefile里面

如果你需要可以把它写在头文件里

这不是系统的标准

论坛徽章:
0
发表于 2009-05-21 14:35 |显示全部楼层
在Makefile中可以找到,关键是怎么在程序中调用?
不是一个宏吗?
晕啊
我自己都

论坛徽章:
0
发表于 2009-05-21 14:39 |显示全部楼层
编译选项吧. 可以跟在CFLAGS里面,作用于代码中...

论坛徽章:
0
发表于 2009-05-25 13:23 |显示全部楼层
楼上大哥能说的清楚点吗?
谢谢

论坛徽章:
0
发表于 2009-05-25 14:52 |显示全部楼层
已经解决:
在Makefile.am中,
DEFS= -D_INST_PRX='"$(prefix)"'

评分

参与人数 1可用积分 +6 收起 理由
langue + 6 自己动手,丰衣足食。

查看全部评分

论坛徽章:
0
发表于 2009-05-25 14:54 |显示全部楼层

回复 #7 huachong 的帖子

举个列子aa.c 内容如下:

  1. #include <stdio.h>
  2. int main()
  3. {
  4. #ifdef AAAA
  5.         printf("aaa\n");
  6. #else
  7.         printf("bbb\n");
  8. #endif
  9.         return 0;
  10. }
复制代码


gcc aa.c  生成a.out,运行结果为bbb;
gcc -DAAAA  aa.c  生成a.out,输出结果为aaa;
在makefile这些-D开头的编译选项,一般定义在CFLAGS变量中,作用于所有文件的编译.
当然如果要赋值的方式,也类似.


  1. #include <stdio.h>
  2. int main()
  3. {
  4. #ifdef AAAA
  5.         printf("aaa:%s\n",AAAA);
  6. #else
  7.         printf("bbb\n");
  8. #endif
  9.         return 0;
  10. }
复制代码

编译时候: gcc -DAAAA="\"123\"" aa.c

论坛徽章:
0
发表于 2009-05-25 14:55 |显示全部楼层
晕,看到的晚了...
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP