makefile & ubuntu中简单示例&权限问题

target:dependency  dependency [...]

command

command

[...]

解释:target表示make执行的目标

          dependency表示执行该目标时需要依赖的对象,对象之间用空格隔开

          command 表示执行目标的命令

注意:

         所有command行之前键入一个tab,否则make makefile文件时会报错

下面我们来看一个简单的bubblesort.c程序

#include <stdio.h>

       void bubbleSort( int list[], int size )
      {
        int i, j, temp, swap = 1;
        while (swap) {

          swap = 0;

           for ( i = (size-1) ; i >= 0 ; i-- ) {

           for ( j = 1 ; j <= i ; j++ ) {

              if ( list[j-1] > list[j] ) {

                 temp = list[j-1];
                list[j-1] = list[j];
                list[j] = temp;
                swap = 1;
                }
             }
          }
        }
   }

      int main()      {
        int theList[10]={10, 5, 8, 3, 9, 5, 4, 7, 2, 1};
        int i;

        /* Invoke the bubble sort algorithm */
        bubbleSort( theList, 10 );

        /* Print out the final list */
       for (i = 0 ; i < 10 ; i++) {
            printf("%d\n", theList[i]);
        }

       }

该文件的makefile为:注意gcc前的tab

makefile  ubuntu中简单示例权限问题 - IRIS - 蔷薇·海饼干

makefile中编译和链接都要带参数-fprofile-arcs -ftest-coverage 这是我用gcov做的覆盖率测试,

先前在第二个target行也加了tab报错,去掉tab后,在第一个gcc行后加了‘/’因为要换行。结果在执行的时候一直说无法找到result这个文件在我输入“ ./result/       ” 之后才行。发现不需要空格。

如果出现 Permission denied,就是权限问题,下面说一下关于权限的几个方法

1 root和其他用户组的切换

启用root 帐号(也就是设置一个口令)使用:

sudo passwd root

当你使用完毕后屏蔽root帐号,锁住root帐号使用:

sudo passwd -l root

从其他用户组切换至root使用:
sudo -s -H
从root切换至其他用户组使用:

su 用户组名

2 让所有用户获得该文件的读写权
sudo chmod 777  文件路径
3 将某个文件的所有者从root改为其他用户组

chown -R  用户组名 文件名

这些是最近在linux环境下尝试C代码覆盖率测试时遇到的问题找到的解决办法,也是搜的其它人的解决办法。现在将这些整理起来方便以后使用,也算是给大家的一个参考吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值