Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Message-ID: <020101c2cbd4$3967bb80$696f86d9@webdev> From: "Elfyn McBratney" To: "cygwin" , "Nick Miller" References: Subject: Re: Why won't my files link? Date: Mon, 3 Feb 2003 22:32:36 -0000 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106 > So I am new to Cygwin, but I am enjoying it so far. Kewl! :::::::-) > I am having a > problem, though, please respond if you can... I have three C files (all > ending in .c), and I can compile them with GCC by using the -c switch. > Then, I want to link all three of the object files that I have created > (ending in .o) and make an executable which uses all three. My file > called main.c has two include lines, which says to include > "io_functions.h" and "fun.h". Then I am using this line to link > everything and make the executable... Right. To all of the files you are tryin to compile (the *.c files and the *.h files) reside in the same directory? If so you should be using a command similar to $ gcc -I.-c fun.c [...] So that the current directory is added to the search path for included files (-I.) . That is ofcourse if they reside in the same directory, if not then you just s/./path/ (replace . with the path to where the files are). And that the file (fun.c) is just compiled (-c) . > gcc -o main fun.o io_functions.o main.o > > I have tried this exact thing with the exact same files on a Linux system > and it works fine, but for some reason under Cygwin it is not working. I > am thinking that the problem lies in that my files are not being accessed > correctly. For instance, when I want to run executables I have made in my > cygwin/home/Owner directory, I have to use "./executablename" because for > some reason commands do not go directly to the home directory (this is in > the Cygwin FAQ). Mmmm... If you mean you want to be able to call `compiled-program' instead of `./compiled-program' at the prompt then there's two things you can do. The first is adding a . to the PATH (that symbolises the current working directory) environment variable export PATH="$PATH:." or you can add the absolute directory path to your PATH env. var., if your going to keep all of your executables in one place, you can do export PATH="$PATH:/home/Owner/somewhere_in_here" > I am wondering if I need to do something to make all of > the files in my home directory viewable or available when doing the > compile command above. Any ideas? Thanks so much. You might try compiling each file (into an executable) before, in-case there are errors, so you'll have peace of mind that they'll actually compile. Regards, Elfyn McBratney elfyn AT exposure DOT org DOT uk www.exposure.org.uk -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/