C++ 编译器和包含文件可以在一个驱动器(系统驱动器)中,而代码文件本身(.cpp)可以在另一个驱动器中吗?

C++ 编译器和包含文件可以在一个驱动器(系统驱动器)中,而代码文件本身(.cpp)可以在另一个驱动器中吗?

我可以使用主驱动器作为放置/安装编译器及其文件(和包含文件)的地方,但使用不同的驱动器来存放我的 c/cpp 源文件吗?

例如,gcc 和 includes 位于 中/usr/,而源/代码文件位于另一个驱动器上。

我尝试使用导入必要的包含

#include "/usr/include/stdlib.h"

等等,但它不起作用,因为仅添加 stdlib 是不够的,并且它显示:

cannot open source file "stdarg.h" (dependency of "stdio.h")

我正在使用 Ubuntu 18.04,VSCode。

编辑:
通过手动将包含路径添加到配置文件,问题已得到解决c_cpp_properties.json

答案1

不要在包括指令!如果您想包含来自默认路径以外的其他位置的头文件,您可以使用预处理器的-I标志,必要时可多次使用。几乎所有现代 C 和 C++ 编译器都嵌入了预处理器,因此您只需在普通编译器命令行中指定标志即可:

cc [options...] -I/your/header/search-path -I/another/header/search-path [more options...] [source files...]

更多信息请参阅GCC 手册中关于“目录搜索选项”的部分或 C 或 C++ 编译器手册的等效部分。


makeCPPFLAGS基于的构建系统通常会分别通过、CFLAGS和/或CXXFLAGS环境变量传递预处理器、C 编译器和 C++ 编译器标志:

CPPFLAGS="$CPPFLAGS -I/your/header/search/path" make

如果您的项目使用不同的构建系统,请查阅其文档。


您可以在以下网址询问有关编译器和构建系统仪表的更多具体问题:堆栈溢出因为它们可能与此无关。

答案2

在任何 Linux 系统上,编译器 gcc 通常安装在 /usr/bin 中,而标准库包含文件通常存储在 /usr/include 中。

您可以在自己的主目录或您有读写权限的任何其他目录中创建项目文件。发行版软件包的源项目通常安装在 /usr/src 中

您需要在寻求帮助时提供有关遇到的任何错误的更多信息,以便人们可以为您提供适当的建议。我假设您已经在系统上安装了 gcc 包。

我建议您用 Google 寻找一个适合在 Linux 上开发 C++ 应用程序的教程,它将为您在开始时可能遇到的很多问题提供答案,包括但不限于合适的 ide。

相关内容