0

.sublime-build在 Sublime Text 3 (ST3) 中有一个自定义文件,其中包含我希望它搜索 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

但我可以检查我的电脑并查看该文件是否存在于该目录中。为什么它给我这个错误?我可以更改什么以便它可以找到我正在寻找的头文件?

4

1 回答 1

1

我不熟悉所有的术语,因为我在 C/C++ 中编码的经验有些有限,但据我所知,有两种类型的#includes。第一种类型,头文件名包含在尖括号< >#include <stdio.h>,#include <string.h>等)中,表示您包含标准库中的头文件。

第二种类型,其中包含的文件用双引号" "#include "Python.h",#include "myheader.h"等)括起来,用于包含任何其他头文件,其位置在 Makefile 或在命令行中指定的-I选项(至少 for gcc)。也可以显示子目录 - 例如,如果您传递-I/usr/local/include/mylib/include选项,则您的 include 语句可能是#include "x86_64/myheader.h"如果原始目录中有子目录。

请参阅#include <filename> 和 #include "filename" 之间有什么区别?以获得更好的解释。

由于armadillo它听起来不像是标准库的一部分,并且您正在命令行上传递它的位置,因此用双引号替换尖括号并查看是否可以解决问题可能是个好主意。

于 2016-09-14T15:36:04.863 回答