问题描述
今天使用 c 调用 lua,在linux安装了lua开发环境,但是开发的时候却找不到 lua.h 头文件;
在linux 运行以下命令, 显示 LUA 5.3.0 版本,证明LUA的安装是没问题的;
root@PAw9033927:~# lua -v
Lua 5.3.0 Copyright (C) 1994-2015 Lua.org, PUC-Rio
但是在 CLion idea 却显示 'lua.h' file not found
然而,更奇怪的是,点绿色小三角运行的时候却是可以正常运行的;
这个情况让我了解到,肯定是idea的问题,代码是没问题的;
找呀找问题
通过find命令找到 lua.h 的文件在以下路径,
/usr/local/include/lua.h
以下是 gcc 内定的头文件的路径
/usr/include
/usr/local/include
/usr/lib/gcc-lib/<platform>/<version>/include
那既然有这个文件,idea为啥找不到呢?
原因分析
原来啊,clion 默认是在自己的Header Search Paths
目录下找这个文件的,如下图
下面有2个include目录,但是这2个目录里面都没有 lua.h 文件,自然就会报错啦;
解决
既然找到问题了,那我们就来着手解决这个问题吧; 问题很明显,就是找不到 lua.h , 那我们让他能找到这个文件就可以啦!!
1、先打开 头文件所在目录
2、删除当前目录下的所有内容
3、删除 clion 下的所有 include
4、在CmakeLists.txt 文件 的最后加上以下代码,注意哦 ,一定要加到最底部
target_include_directories(untitled PRIVATE /usr/local/include)
加好后如下图
5、重新加载cmake,然后clion会去服务器的 /usr/local/include
目录下将所有的头文件都同步过来;
6、解决完成,之前删掉的include已经重新下载回来了,代码也不会报错了