Thanks for your response.
That makes sense...gcc knows where to find its own object files (iostream), and I understand the ambiguity that would result if I were not to specifically specify each of my own files.
Three follow-up questions:
1) I executed the command you mentioned above, and the path to the iostream object file was not listed, nor was the path to the iostream.h file. There must be another variable for paths to "common" files or hard coded...? Is this correct?
2) When I place my header file in the same directory as iostream.h and make no changes to the compiler options, c::b finds my header, and doesn't seem to worry about any ambiguity (say if i had two headers with the same name in the same folder), but when I place my object file in the same directory as iostream object file c::b does not find it.
3) When I place my ojbect file in any of the paths listed by the search directory flag, gcc still does not find my object file.
This all seems very odd behavior. I would expect that the search directories listed by gcc would include the paths to iostream.h and the iostream object file, which it does not. Also, I would expect that when I place my header files and object files in searchable directories they would either both be found or both not resolve due to ambiguity (and thus require specific user information). However, it will find header files without my instructions, but not object files.
This raises the question...if you have to specify folder paths for anything 'user added', why even have a searchable directories variable as I would have to specify the file and folder path anyways?
If you tell me, "that is just the way c::b" was written, I can accept that. But I guess I find it hard to believe this was designed this way. I agree with your point about ambiguous names (i could have 20 different files on my disk with the same name), but then why am I not forced to specify the file and folder path of my header files, but I am for my object files?
Thanks,
DanK