Reputation: 25383
In building a C++ project with the GNU tool chain, make tells me ~
src/Adapter_FS5HyDE.d:1: *** multiple target patterns. Stop.
Search, search, search, and I found out that make
thinks that it has multiple targets because the path to my included headers has spaces in it. If you've got your headers stored in some sane place like C:\Program Files
then you can take care of this by using the old DOS paths (e.g. C:\PROGRA~1
). However, when you have your headers in a truly insane place like My Documents
you can get around the problem with MY DOC~1
because there's still a space.
Any idea how to tell my compiler to look in My Documents for headers without make
confusing the path as two objects?
(Note: Feel free to throw tomatoes at me for putting header files in My Documents if you'd like, but there is a little rationale for doing that which I don't feel like explaining. If the solution to this question is easy, I'd rather keep it the way it is.)
Upvotes: 1
Views: 821
Reputation: 8611
Write a wrapper script (e.g. batchfile) to translate the path names to short form.
I have a script "runwin" that does stuff like this - instead of, e.g. gcc <args>
I can call runwin gcc <args>
;
runwin will make heuristic guesses as to which arguments are filename paths and translate them, then call gcc on the resulting string of arguments.
Upvotes: 0
Reputation: 911
For some folders, including My Documents, you can specify an alternative location. To do this, right-click the folder, select Properties, select Location tab, and away you go. I use this to put my downloads and music on another drive (D:).
Upvotes: 0
Reputation: 76021
Side note: the short name (8.3) for the same folder might not be the same on different OS installations. Thus, you can't be sure that C:\Program Files
will always be C:\PROGRA~1
.
My Documents
is MYDOCU~1
, not MY DOC~1
. My Documents
) using dir /x <filename>
. cmd.exe
), you should be able to use quotes ("
) around the folder/file names to work around this problem. Upvotes: 0
Reputation: 46463
You can figure out what the old path is by doing a DIR /X
in your command prompt.
Or, most of the time you can fake it with the first 6 characters - spaces + ~1
+ extension (8.3 paths won't have spaces).
Or, you can use quotes: "C:\Documents and Settings\Administrator\My Documents"
.
Upvotes: 3
Reputation: 46673
I don't know about make specficially, but the normal way around this is to put quotes around the path i.e.
cd "C:\Program Files\"
does that work?
Upvotes: 1