确认 .sublime-build 在 Windows 上查看的位置(Sublime Text 3,C++)
Confirm location that .sublime-build is looking at (Sublime Text 3, C++) on Windows
我在 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
但我可以查看“我的电脑”并看到该文件存在于该目录中。为什么会给我这个错误?我可以更改什么以便它可以找到我要查找的头文件?
我不熟悉所有术语,因为我在 C/C++ 中编码的经验有些有限,但据我所知,有两种类型的 #include
。第一种类型,其中 header 文件名括在尖括号 < >
中(#include <stdio.h>
、#include <string.h>
等),表示您包含 header来自标准库。
第二种,包含的文件用双引号括起来 " "
(#include "Python.h"
、#include "myheader.h"
等),用于包含任何其他 header其位置在 Makefile 中或在命令行中使用 -I
选项指定(至少对于 gcc
)。也可以显示子目录 - 例如,如果您传递 -I/usr/local/include/mylib/include
选项,如果原始目录中有子目录,您的 include 语句可能是 #include "x86_64/myheader.h"
。
请参阅 What is the difference between #include <filename> and #include "filename"? 以获得更好的解释。
因为 armadillo
听起来不像是标准库的一部分,并且您在命令行上传递它的位置,所以用双引号替换尖括号可能是个好主意,看看能不能解决问题。
我在 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
但我可以查看“我的电脑”并看到该文件存在于该目录中。为什么会给我这个错误?我可以更改什么以便它可以找到我要查找的头文件?
我不熟悉所有术语,因为我在 C/C++ 中编码的经验有些有限,但据我所知,有两种类型的 #include
。第一种类型,其中 header 文件名括在尖括号 < >
中(#include <stdio.h>
、#include <string.h>
等),表示您包含 header来自标准库。
第二种,包含的文件用双引号括起来 " "
(#include "Python.h"
、#include "myheader.h"
等),用于包含任何其他 header其位置在 Makefile 中或在命令行中使用 -I
选项指定(至少对于 gcc
)。也可以显示子目录 - 例如,如果您传递 -I/usr/local/include/mylib/include
选项,如果原始目录中有子目录,您的 include 语句可能是 #include "x86_64/myheader.h"
。
请参阅 What is the difference between #include <filename> and #include "filename"? 以获得更好的解释。
因为 armadillo
听起来不像是标准库的一部分,并且您在命令行上传递它的位置,所以用双引号替换尖括号可能是个好主意,看看能不能解决问题。