В том числе, если я использую "test.h", то же самое с "path / test.h"? - PullRequest
0 голосов
/ 18 июля 2011

Я работаю в Ubuntu на языке C ++.

У меня вопрос: я использую #include"header.h".Это то же самое с /path/header.h?Я задаю вам этот вопрос, потому что, как я видел, это не одно и то же.Нужны объяснения.

Я задаю вам этот вопрос, потому что я скачал и установил gsoap на свой компьютер.Я добавил все необходимые зависимости в папку и попытался запустить приложение без установки gsoap ... на другом компьютере.У меня были некоторые ошибки .. я забыл добавить файл stdsoap2.h ... я добавлю его сегодня .. в моей папке ..

Ответы [ 3 ]

1 голос
/ 18 июля 2011

Ответ зависит:

Если к вашему добавленному пути добавлен «путь /», тогда будет работать только включение «header.h», потому что тогда компилятор уже знает путь для поиска ваших заголовочных файлов, если нет затем вы должны включить весь путь "путь / заголовок.h", чтобы компилятор знал, где искать файл заголовка.

0 голосов
/ 18 июля 2011

Если header.h находится в каталоге path/, то #include "header.h" будет работать для тех заголовочных и исходных файлов (которые #include header.h, которые находятся в том же каталоге, что и header.h (* 1006) *).

С другой стороны, если вы #include -ing header.h в файле, который находится в другом каталоге, чем path/, то вышеуказанный способ не будет работать. Чтобы это сработало, вы можете попробовать 2 разных подхода:

  1. #include полный путь к header.h. Ваш #include будет выглядеть примерно так: #include "path/header.h"
  2. Включите каталог path/ в makefile. Это заставит g++ искать header.h и в этих каталогах. Это можно сделать так (в make-файле):
    g++ <some parameters> -Ipath/ -c main.cpp -o main.o (при условии, что header.h вызывается из main.cpp). Если вы выберете этот способ, то #include также изменится, например:
    #include <header.h>. Обратите внимание на использование флага -I в качестве параметра для g ++. Этот флаг указывает g ++ также искать дополнительные каталоги.
0 голосов
/ 18 июля 2011

Нет, концептуально они не одинаковы.Результаты, однако, могут быть одинаковыми.Это зависит от того, как вы скажете компилятору найти заголовки (флаг -I в g++).Если вы скомпилируете с -I /path/, то вы найдете /path/header.h с #include "header.h".Если вы не используете этот флаг пути включения, вам нужно будет написать #include "/path/header.h".

...