【问题标题】:Compiling gsl library. Error appears: zsh: exec format error: ./compute.o编译 gsl 库。出现错误:zsh: exec format error: ./compute.o
【发布时间】:2020-07-17 09:26:00
【问题描述】:

我正在尝试安装和编译一个“简单的”c++ 代码,包括 GNU 科学库。
这是我的 C++ 代码:

#include <iostream>
#include "gsl/gsl_sf_bessel.h"
#include <stdio.h>


using namespace std;
int main()
{
    double x = 5.0;
    double y = gsl_sf_bessel_J0 (x);

    printf("J0 (%f) = %f\n", x, y);

    return 0;

}

现在,我想用以下命令编译这段代码 行:

g++ -c -std=c++11 -I/usr/local/include/ compute.cc

这会生成一个 compute.o 文件。 到现在为止还挺好。但是当我尝试执行此文件时,我的 Mac 显示以下问题:

zsh: exec format error: ./compute.o

我向您寻求帮助,如果您有任何建议,我将不胜感激。

【问题讨论】:

  • 你为什么要运行一个目标文件?您是否熟悉构建 C++ 应用程序的步骤,即编译 + 链接 = 可执行文件/库?
  • @PaulMcKenzie 非常抱歉。不幸的是,我对构建 C++ 应用程序不是很熟悉。不过,您对我有什么建议吗?
  • 使用g++ 和链接器ld 在许多教程中都有解释,这比尝试将所有内容都放在 StackOverflow 上的答案要好。也许你应该先从小一点开始,一个简单的“Hello World”程序,而不是一头扎进第三方库的工作中。

标签: c++ g++ gnu gsl


【解决方案1】:

创建可执行文件的命令:

g++ -std=c++11 -I/usr/local/include/ compute.cc -o compute

没有-c-o &lt;name of program&gt;。而且您必须链接所需的库:

g++ -std=c++11 -I/usr/local/include/ compute.cc -o compute -L/usr/local/lib -lgsl -lgslcblas -lm

docs 中所述。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-02
    • 2013-03-26
    • 1970-01-01
    • 2017-05-18
    相关资源
    最近更新 更多