Может ли компилятор C ++ и include находиться на одном диске (системном диске), а сами файлы кода (.cpp) - на другом? [закрыто]

Могу ли я использовать свой домашний диск в качестве места, где размещаются / устанавливаются компилятор и его файлы (и включает), но использовать другой диск для моего источника c / cpp файлы?

Например, gcc и включаемые файлы находятся в / 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 вручную.

0
задан 22 August 2018 в 14:03

2 ответа

Не указывайте абсолютные пути в директиве include ! Если вы хотите включить заголовочные файлы из других мест, отличных от путей по умолчанию, вы можете использовать флаг препроцессора -I, при необходимости несколько раз. Практически все современные компиляторы C и C ++ имеют встроенные препроцессоры, поэтому вы можете просто указать флаг в командной строке обычного компилятора:

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

Для получения дополнительной информации см. Раздел руководства GCC « Опции для поиска по каталогу » или эквивалентные разделы руководства вашего компилятора C или C ++.

Системы сборки на основе

make обычно передают флаги препроцессора, компилятора C и компилятора C ++ через переменные окружения CPPFLAGS, CFLAGS и / или CXXFLAGS соответственно:

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

Если в вашем проекте используется другая система сборки, обратитесь к документации.


Вы можете задать более конкретные вопросы о инструментарии компилятора и системы сборки в Переполнение стека , так как они, вероятно, будут не по теме здесь.

4
ответ дан 28 October 2019 в 03:02

В любой системе Linux компилятор gcc обычно устанавливается в/usr/bin, в то время как стандартная библиотека включает файлы, обычно хранятся в/usr/include.

Можно создать файлы проекта в собственном корневом каталоге или любом другом каталоге, к которому у Вас есть rw доступ. В то время как исходные проекты для пакетов дистрибутива обычно устанавливаются в/usr/src

Необходимо предоставить больше информации о любых ошибках, которые Вы получаете при обращении за помощью, таким образом, люди могут дать Вам надлежащий совет. Я предполагаю, что Вы уже установили gcc пакет в своей системе.

Я предлагаю Вас Google для подходящего учебного руководства для разработки приложений C++ на Linux, который предоставил бы Вам ответы на большое количество проблем, которые Вы, вероятно, будете иметь, как Вы начинаете, включая, но не ограничиваясь, подходящим язем.

0
ответ дан 28 October 2019 в 03:02

Другие вопросы по тегам:

Похожие вопросы: