По какой-то причине мне нужно использовать абсолютный путь в #include
для моей системы.
Использует #include "D:\temp\temp_lib\temp.h"
приемлемый?
Я пробовал это другое использование, и все это, кажется, работает.
#include "D:\temp\temp_lib\temp.h"
#include "D:\\temp\\temp_lib\\temp.h"
#include "D:/temp/temp_lib/temp.h"
Я просто хочу знать, какой я должен использовать? Я использую MSVC 2005. Мне интересно, все ли еще будут работать в Linux или другой среде.
Я ожидал, что # 1 будет ошибка во время компиляции, но я не получил ничего. У кого-нибудь есть идеи, почему это так?
Каждая известная мне реализация, и, конечно же, MSVC 2005 и linux, позволяет вам указывать пути к каталогам, в которых можно найти заголовочные файлы. Вы должны включить D: \ temp \ temp_lib в список путей к каталогам, а затем использовать
#include <temp.h>
Для gcc используйте -I дорожка. Для MSVC см. Где Visual Studio ищет заголовочные файлы C ++?
Причина того, что # 1 не является синтаксической ошибкой, заключается в том, что, хотя она выглядит как строковый литерал, это не так. Спецификация
#include "q-char-sequence"
Где q-char
любой элемент исходного набора символов, кроме символа новой строки
а также «
Особенно, \
не имеет особого значения. Интерпретация q-char-последовательности определяется реализацией.
Других решений пока нет …