Date: Mon, 24 Mar 2008 22:01:06 -0400 From: Eduardo Cerejo <ejcerejo@optonline.net> To: Chuck Robey <chuckr@chuckr.org> Cc: mdh <mdh_lists@yahoo.com>, FreeBSD-questions@FreeBSD.org Subject: Re: How do I add search paths to gcc Message-ID: <20080324220106.60f7d378.ejcerejo@optonline.net> In-Reply-To: <47E4375A.9090607@chuckr.org> References: <12987.84776.qm@web56809.mail.re3.yahoo.com> <47E4375A.9090607@chuckr.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 21 Mar 2008 18:31:54 -0400 Chuck Robey <chuckr@chuckr.org> wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > mdh wrote: > > --- Eduardo Cerejo <ejcerejo@optonline.net> wrote: > > > >> My gcc is only looking in /usr/lib and /usr/include > >> for libraries and hearders and I added the paths > >> /usr/local/lib/ and /usr/local/include to my .cshrc > >> file: > >> > >> set path = (/sbin /bin /usr/sbin /usr/bin /usr/games > >> /usr/local/sbin /usr/local/bin /usr/local/lib > >> /usr/local/include $HOME/bin) > > > > PATH in the environment is where your shell searches > > for programs to run from the command line, system(), > > etc. This allows you to type, say, `sh` instead of > > having to type out `/bin/sh` or risking having > > `/home/somekiddie/sh` run instead when you type it. > > > >> but I still have to use gcc with -I and -L switch > >> for a program to compile or else it will fail. > >> > >> I'm using tcsh. > > > > There are two ways to set up alternate places to find > > libraries. The first is ldconfig, and you can see > > ports run this when you install a port containing > > shared libraries for example. The other is to use the > > LD_LIBRARY_PATH environment variable to set alternate > > paths at run-time. > > > > Well, that might be taken as confusing, even though your info is technically > quite correct. Both those methods WILL get those added dirs searched for > loading the libraries at run time, BUT it will NOT get your compiler to find the > new paths, when linking the program during the build. I'm fairly sure that's > what the person wanted, don't you think so? > > Because, if I'm wrong, you can delete this email right here and now, read no more. > > BUT you were quite correct, there are definitely *at least* two methods to set > up your *compiler* library search paths. In fact, I think I can show you 3 > methods right now. > > First, you can list the full path of the library on the command line, when you > use your compiler to link your program. > ] > Second, you can (as the person suggested himself) you can use the -l/-L options > to bring in libraries & paths. The -L should come first, it adds the path, and > the -l afterwards adds the specific library. > > The 3rd method is the use the variables LDFLAGS and LDADD. These variables are > NOT 100% reliable to use, although they are fairly reliable on BSD systems. The > LDFLAGS is where you put your "-LExtraPath" and the LDADD is where you stick > the -lExtraLibrary, like this (from a Makefile example): > LDFLAGS+=-L/usr/local > LDFLAGS+=-lgtk > > If you are using the BSD make util, the you use "+=" to add to your variables, > instead of replacing them, in case they had some values in them to begin with. > "Make" automatically adds in the obvious spaces, so your definitions don't have > a train wreck for you. > > > The 'ldconfig(1)' man page has more info for you. > > > > Take care, mdh After searching quite a bit I found someone looking for same thing running tcsh (not freebsd) and the solution was running or adding these lines to .cshrc. setenv C_INCLUDE_PATH "/usr/local/include" setenv LIBRARY_PATH "/usr/local/lib" this did the trick for gcc
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080324220106.60f7d378.ejcerejo>