g++ 编译.cpp 无法找到头文件

我使用GSL库测试小程序:
test.c文件

#include <gsl/gsl_math.h>
#include <stdio.h>
#include <gsl/gsl_errno.h>
//#include <gsl/gsl_sf_bessel.h>
//using namespace std;
int main(void)
{
double x=3.0;
double y=gsl_sf_bessel_J1(x);

printf("J1(%g)=%.18e\n", x, y);
return 0;
}

在bashrc文件中如下配置

#GSL
export PATH=$PATH:YOUR_DIRECTORY/bin
export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:YOUR_DIRECTORY/include
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:YOUR_DIRECTORY/lib
export GSL_LD=YOUR_DIRECTORY/lib
然后如下命令:
编译文件:
gcc -o al.o -c test.c
链接文件:
gcc -o al.out al.o -lgsl -lgslcblas -L$GSL_LD -lm
执行成功

但是如果x想用g++编译,先把.c文件改为.cpp
然后执行命令改成:
编译文件:
g++ -o al.o -c test.c
链接文件:
g++ -o al.out al.o -lgsl -lgslcblas -L$GSL_LD -lm

或者直接改为:
g++ -o al.out test.cpp -lgsl -lgslcblas -L$GSL_LD -lm

都出现如下错误:
test.cpp:1:26: fatal error: gsl/gsl_math.h: No such file or directory
#include <gsl/gsl_math.h>
^
compilation terminated.

请问大家这是什么原因造成的呢?谢谢大家的帮助。
...全文
709 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2016-06-03
  • 打赏
  • 举报
回复
将YOUR_DIRECTORY替换为实际的目录
赵4老师 2016-06-03
  • 打赏
  • 举报
回复
比如我登录Linux的用户的home目录(使用cd ~命令可进入该目录)为/zz 我将ACE安装到目录/zz/voipapp/tools/ACE_wrappers下 以下两条shell命令配置了编译链接ACE需要的环境变量ACE_ROOT和LD_LIBRARY_PATH export ACE_ROOT=$HOME/voipapp/tools/ACE_wrappers export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ACE_ROOT/ace:$ACE_ROOT/lib
  • 打赏
  • 举报
回复
引用 3 楼 zhao4zhong1 的回复:
仅供参考:
    export ACE_ROOT=$HOME/voipapp/tools/ACE_wrappers
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ACE_ROOT/ace:$ACE_ROOT/lib
谢谢老师 能大概给我解释下这两句话的意思吗?我对Linux不是太懂耶。。
赵4老师 2016-06-03
  • 打赏
  • 举报
回复
仅供参考:
    export ACE_ROOT=$HOME/voipapp/tools/ACE_wrappers
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ACE_ROOT/ace:$ACE_ROOT/lib
  • 打赏
  • 举报
回复
引用 1 楼 zhao4zhong1 的回复:
将YOUR_DIRECTORY替换为实际的目录
我配置好了啊,不然的话用gcc也无法编译是吧 我只是把gcc换成为g++就不能编译了,我不理解怎么弄,因为我以后想用C++写程序

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧