From owner-freebsd-questions@FreeBSD.ORG Tue Mar 25 02:01:07 2008 Return-Path: Delivered-To: FreeBSD-questions@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8A1E4106564A for ; Tue, 25 Mar 2008 02:01:07 +0000 (UTC) (envelope-from ejcerejo@optonline.net) Received: from mta2.srv.hcvlny.cv.net (mta2.srv.hcvlny.cv.net [167.206.4.197]) by mx1.freebsd.org (Postfix) with ESMTP id 4C1228FC1A for ; Tue, 25 Mar 2008 02:01:07 +0000 (UTC) (envelope-from ejcerejo@optonline.net) Received: from localhost (ool-44c03822.dyn.optonline.net [68.192.56.34]) by mta2.srv.hcvlny.cv.net (Sun Java System Messaging Server 6.2-8.04 (built Feb 28 2007)) with SMTP id <0JY900BHFK9UPX41@mta2.srv.hcvlny.cv.net> for FreeBSD-questions@FreeBSD.org; Mon, 24 Mar 2008 22:01:06 -0400 (EDT) Date: Mon, 24 Mar 2008 22:01:06 -0400 From: Eduardo Cerejo In-reply-to: <47E4375A.9090607@chuckr.org> To: Chuck Robey Message-id: <20080324220106.60f7d378.ejcerejo@optonline.net> MIME-version: 1.0 X-Mailer: Sylpheed 2.4.8 (GTK+ 2.12.9; i386-portbld-freebsd7.0) Content-type: text/plain; charset=US-ASCII Content-transfer-encoding: 7BIT References: <12987.84776.qm@web56809.mail.re3.yahoo.com> <47E4375A.9090607@chuckr.org> Cc: mdh , FreeBSD-questions@FreeBSD.org Subject: Re: How do I add search paths to gcc X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 Mar 2008 02:01:07 -0000 On Fri, 21 Mar 2008 18:31:54 -0400 Chuck Robey wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > mdh wrote: > > --- Eduardo Cerejo 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