【发布时间】:2016-09-12 16:56:19
【问题描述】:
我在 Sublime Text 3 (ST3) 中有一个自定义 .sublime-build 文件,其中包含我希望它搜索 c++ 头文件的文件夹:
{
"cmd": ["g++", "$file_name", "-o", "${file_base_name}.exe", "-I C:/package/armadillo74002/include", "-L C:/package/armadillo74002/examples/lib_win64", "-lblas_win64_MT", "-llapack_win64_MT", "&&", "start", "cmd", "/c" , "$file_base_name"],
"selector": "source.c",
"working_dir": "${file_path}",
"shell": true
}
但是,当我运行脚本时:
#include <armadillo>
我收到以下错误:
headerex.cpp:2:21: fatal error: armadillo: No such file or directory
但我可以检查我的电脑并查看该文件是否存在于该目录中。为什么它给我这个错误?我可以更改什么以便它可以找到我正在寻找的头文件?
【问题讨论】:
-
IIRC
C:package从 C 的当前工作目录而不是根目录搜索。 -
@CaptainObvlious -- 抱歉,这是我输入问题时的错误。我已经编辑了我的问题以反映我的 .sublime-build 文件实际上是
C:/package/...,而不是我的问题中指出的C:package/...。我仍然收到该错误。 -
我对 C++ 了解不多,但是如果将
#include <armadillo>更改为#include "armadillo.h"(有或没有.h)会怎样?据我了解,< >尖括号中包含的是标准库中的文件,而" "双引号中的那些包含在-I选项传递的其他包含目录中。 -
@MattDMo -- 非常感谢您的帮助!虽然这并没有逐字回答我的问题,但这是我正在寻找的解决方案。 .sublime-build 正在寻找正确的位置,但由于某种原因,我需要使用
" "而不是< >。进行此更改使我能够成功致电armadillo。如果您想将此添加为解决方案,我会接受它作为我正在寻找的解决方案,并添加评论原因。
标签: c++ sublimetext3 sublime-build