【问题标题】:Permission denied? when executing the example.o (gsl statistics sample)没有权限?执行 example.of 时(gsl 统计示例)
【发布时间】:2011-08-18 00:51:09
【问题描述】:

我在我的 Mac 上下载、编译并安装了 GNU 科学库 (gsl),它默认位于 /usr/local/include/gsl。

为了测试它,我尝试编译并执行示例 C 程序(从 gsl 文档中找到)。

 #include <stdio.h>
 #include <gsl/gsl_statistics.h>

 int
 main(void)
 {
   double data[5] = {17.2, 18.1, 16.5, 18.3, 12.6};
   double mean, variance, largest, smallest;

   mean     = gsl_stats_mean(data, 1, 5);
   variance = gsl_stats_variance(data, 1, 5);
   largest  = gsl_stats_max(data, 1, 5);
   smallest = gsl_stats_min(data, 1, 5);

   printf ("The dataset is %g, %g, %g, %g, %g\n",
          data[0], data[1], data[2], data[3], data[4]);

   printf ("The sample mean is %g\n", mean);
   printf ("The estimated variance is %g\n", variance);
   printf ("The largest value is %g\n", largest);
   printf ("The smallest value is %g\n", smallest);
   return 0;
 }

要编译它,

$ gcc -I /usr/local/include -c example.c

$ ls

example.c 例子.o

并且,为了执行它,

$ ./example.o

-bash: ./example.o: 权限被拒绝

发生了什么事?除了我还有谁可以运行它?

【问题讨论】:

    标签: macos gcc gsl


    【解决方案1】:

    example.o 是一个目标文件,而不是可执行文件。

    根据文档(info gsl-ref 阅读它),这应该可以工作(或者至少它很接近)。

    $ gcc -Wall -I/usr/local/include -c example.c
    $ gcc -L/usr/local/lib example.o -lgsl -lgslcblas -lm -o example
    $ ./example
    

    【讨论】:

      猜你喜欢
      • 2014-05-09
      • 2021-09-25
      • 2018-01-13
      • 1970-01-01
      • 2020-07-13
      • 2016-08-27
      • 2013-01-27
      • 2014-10-12
      • 2019-06-15
      相关资源
      最近更新 更多