пробел свободный путь к моим документам - PullRequest
1 голос
/ 18 августа 2010

При создании проекта C ++ с помощью цепочки инструментов GNU, make сообщает мне ~

src / Adapter_FS5HyDE.d: 1: *** несколько целевых шаблонов. Стоп.

Поиск, поиск, поиск, и я обнаружил, что make считает , что у него несколько целей, потому что путь к моим включенным заголовкам содержит пробелы. Если ваши заголовки хранятся в каком-то нормальном месте, например C:\Program Files, тогда вы можете позаботиться об этом, используя старые пути DOS (например, C:\PROGRA~1). Однако, когда ваши заголовки находятся в по-настоящему безумном месте, таком как My Documents, вы можете обойти проблему с помощью MY DOC~1, потому что еще есть место.

Есть идеи, как заставить мой компилятор искать в «Мои документы» заголовки, не make путая путь как два объекта?

(Примечание: не стесняйтесь бросать в меня помидоры за размещение файлов заголовков в «Мои документы», если хотите, но - это небольшое обоснование для того, что я не хочу объяснять. Если решение этого вопроса легко, я бы предпочел, чтобы оно оставалось таким, как есть.)

Ответы [ 5 ]

3 голосов
/ 18 августа 2010

Вы можете выяснить, что такое старый путь, введя DIR /X в командной строке.

Или, чаще всего, вы можете подделать его с помощью первых 6 символов - пробелы + ~1 + расширение (8,3 пути не будут иметь пробелов).

Или вы можете использоватьцитаты: "C:\Documents and Settings\Administrator\My Documents".

1 голос
/ 18 августа 2010

Я не знаю, что делать с make-ом, но нормальным способом для этого является расстановка кавычек по пути, т.е.

cd "C:\Program Files\"

это работает?

0 голосов
/ 18 августа 2010

Напишите скрипт-обертку (например, пакетный файл) для перевода имен путей в краткую форму.

У меня есть скрипт "runwin", который выполняет такие вещи - вместо, например, gcc <args> Я могу позвонить runwin gcc <args>;runwin сделает эвристические предположения относительно того, какие аргументы являются путями к именам файлов, и переведет их, затем вызовет gcc для полученной строки аргументов.

0 голосов
/ 18 августа 2010

Для некоторых папок, включая Мои документы, вы можете указать альтернативное местоположение. Для этого щелкните правой кнопкой мыши папку, выберите «Свойства», выберите вкладку «Местоположение» и все - и все. Я использую это, чтобы поместить мои загрузки и музыку на другой диск (D:).

0 голосов
/ 18 августа 2010

Примечание : краткое имя (8.3) для одной и той же папки может не совпадать в разных установках ОС.Таким образом, вы не можете быть уверены, что C:\Program Files всегда будет C:\PROGRA~1.

  • Короткие имена также не могут содержать пробелов, поэтому обычное короткое имя для My Documents равно MYDOCU~1, а не MY DOC~1.
  • Вы можете найти точное краткое имя для любой папки или файла (включая My Documents), используя dir /x <filename>.
  • Если вы используете цепочку инструментов GNU из командной строки Windows (cmd.exe), вы сможете использовать кавычки (") вокруг имен папок / файлов, чтобы обойти эту проблему.
...