免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1561 | 回复: 1
打印 上一主题 下一主题

use gcc in shell script [复制链接]

论坛徽章:
0
1 [报告]
发表于 2003-06-27 07:51 |显示全部楼层

use gcc in shell script

...

...

VAR="what_ever"     

gcc -D $VAR -o $VAR

...

论坛徽章:
0
2 [报告]
发表于 2003-06-28 00:19 |显示全部楼层

use gcc in shell script

原帖由 "kfcn" 发表:
Hi, Red Sleeve or other high hands;

I still have the problem of changing the value of  the variable in the c file. Say, the file is soso.c, the variable is cHANGEABLE,  I want the value of cHANGEAB..........
   


okay, i understand what you want.

there are probably some syntax errors or undefined variables in your C code.

1. there should be a hash before define, i.e.  #define
2. since quesheng is a string, it should be quoted  

try this one, assume it's called soso.c

  1. #include <stdio.h>

  2. #ifndef cHANGEABLE
  3. #define cHANGEABLE "quesheng"
  4. #endif

  5. int main()
  6. {
  7.     char* var = cHANGEABLE ;
  8.     printf("cHANGEABLE is: %s\n", var);
  9.     return(0);
  10. }
复制代码


then your script 'changeit' may look like this,

  1. if [ x"$1" = x ]; then
  2.     var="quesheng"
  3. else
  4.     var=$1
  5. fi
  6. echo "the executable file is: $var"
  7. gcc -DcHANGEABLE=\"$var\" -o $var soso.c
复制代码


tested on Solaris and IRIX,

sleeve@sievert:~[503]$ ./changeit xingle
the executable file is: xingle
sleeve@sievert:~[504]$ ls -l xingle
-rwx------   1 sleeve    other       5875 Jun 27 18:06 xingle
sleeve@sievert:~[505]$ ./xingle
cHANGEABLE is: xingle
sleeve@sievert:~[506]$ ./changeit
the executable file is: quesheng
sleeve@sievert:~[507]$ ./quesheng
cHANGEABLE is: quesheng
sleeve@sievert:~[508]$

hope it helps.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP