gpt4 book ai didi

c - gcc undefined reference 当我知道引用是正确的

转载 作者:太空宇宙 更新时间:2023-11-04 08:49:41 25 4
gpt4 key购买 nike

我有这个简单的 C 程序,但无法正确链接。

这是程序,

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

int main()
{
double bottom_tail = gsl_cdf_gaussian_P(-1.96, 1);
printf("Area between [-1.96, 1.96]: %g\n", 1-2*bottom_tail);
}

在 shell 中,我正在做:

gcc gsl_erf.c -o gslTest -I/usr/local/include/gsl -L/usr/local/lib

我确定 gsl_cdf.h 头文件在 /usr/local/include/gsl 中,同样我知道 .so 位于 /usr/local/lib

链接器,gcc 后端?提示我有一个未定义的 gsl_cdf_gaussian_P

引用

我以为我的顺序不对,所以我也试了:

gcc -I/usr/local/include/gsl -L/usr/local/lib gsl_erf.c -o gslTest

但这也很糟糕。我究竟做错了什么? :(

最佳答案

您必须告诉编译器实际链接到您正在使用的库:您需要一个 -l 选项,可能类似于 -lgsl。 (取.so文件名,去掉.so后缀和lib前缀,就是放在后面的—— l.)

-L 选项告诉链接器在哪里找到 库,但并不指示它实际链接任何东西 — 就像 -I 选项告诉编译器在哪里可以找到 header ,但实际上并不 #include 任何代码。

关于c - gcc undefined reference 当我知道引用是正确的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20111987/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com