Sponsored Content
Top Forums Programming A question regarding the gcc compiler ... Post 302476289 by Corona688 on Wednesday 1st of December 2010 10:30:04 AM
Old 12-01-2010
So, you're trawling the entire /usr/lib/ directory? by default gcc uses these and only these:
Code:
# Compiling with -static to make it more obvious which things it uses
$ echo "main() { return(42); }" > 42.c
$ strace -f gcc -static 42.c -o 42 2> 42.log
$  grep "\.[ao]" 42.log | grep open | egrep -v "ENOENT|/tmp"
[pid  7741] open("/usr/lib/gcc/i686-pc-linux-gnu/4.3.4/../../../crt1.o", O_RDONLY|O_LARGEFILE) = 4
[pid  7741] open("/usr/lib/gcc/i686-pc-linux-gnu/4.3.4/../../../crti.o", O_RDONLY|O_LARGEFILE) = 5
[pid  7741] open("/usr/lib/gcc/i686-pc-linux-gnu/4.3.4/crtbeginT.o", O_RDONLY|O_LARGEFILE) = 6
[pid  7741] open("/usr/lib/gcc/i686-pc-linux-gnu/4.3.4/libgcc.a", O_RDONLY|O_LARGEFILE) = 8
[pid  7741] open("/usr/lib/gcc/i686-pc-linux-gnu/4.3.4/libgcc_eh.a", O_RDONLY|O_LARGEFILE) = 9
[pid  7741] open("/usr/lib/gcc/i686-pc-linux-gnu/4.3.4/../../../libc.a", O_RDONLY|O_LARGEFILE) = 10
[pid  7741] open("/usr/lib/gcc/i686-pc-linux-gnu/4.3.4/crtend.o", O_RDONLY|O_LARGEFILE) = 11
[pid  7741] open("/usr/lib/gcc/i686-pc-linux-gnu/4.3.4/../../../crtn.o", O_RDONLY|O_LARGEFILE) = 12

Try a library it'll have to look for, like pthread:
Code:
# Yes, I'm aware the code is nonsense.  Nothing better's needed
$ echo "main() { return(pthread_create(42)); }" > 42.c
$ gcc 42.c
/tmp/cckAe1dw.o: In function `main':
42.c:(.text+0x19): undefined reference to `pthread_create'
collect2: ld returned 1 exit status

...It didn't find it. gcc only looks inside what it's told to look inside -- by default a very small set of libraries encompassing stdio, libc, a few math builtins, that's it. It has to be explicitly told to check in libpthread.so (or libpthread.a when linking statically) like
Code:
$ gcc -lpthread 42.c
$

So gcc never had any special superfast linker finding thing. It's just been told where to look. When you start linking in dozens of libraries, you'll indeed find gcc having to do a lot more work...
This User Gave Thanks to Corona688 For This Post:
 

9 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

cc compiler / gcc

:confused: I have a question concerning gcc. IŽd like to install the gcc on my Mac OS X, but when I try to run the configure command I get the following message: floriant% ./configure ./configure: read-only variable: PWD Configuring for a powerpc-apple-darwin5.4 host. *** This configuration... (2 Replies)
Discussion started by: florian.turck
2 Replies

2. Programming

gcc compiler

i write c++ code it run perfectely with g++ compiler but same code when i compile with GCC compiler it gives linker error , followed these linker error /tmp/ccfZtXOQ.o(.text+0x22): In function `main': conf_system.cpp: undefined reference to `operator new(unsigned int)'... (5 Replies)
Discussion started by: munnu
5 Replies

3. UNIX for Dummies Questions & Answers

xl C/C++ compiler to GCC compiler

Hi, we are converting from IBM-AIX(xl c/c++ compiler) to Linux(GCC complier). As a part of this i need to change the CFLAGS. The xl c/c++ complier CFLAGS is CFLAGS := $(CDEBUG) $(PROJECT_INCLUDE_DIRS) $(COBJECT_MODE) -qcpluscmt -qmakedep -qcheck=all \ -qalign=bit_packed $(LINT_FLAGS)... (0 Replies)
Discussion started by: pbattu1
0 Replies

4. UNIX for Dummies Questions & Answers

gcc compiler ---querry

i am newbie my querry is if i am having a gcc compiler which has been a native build with a particular version of binutilities..then when i will use this compiler to build other packages ..then in the linking stage which linker it will use if i do not set my path. ...will it uses by default... (0 Replies)
Discussion started by: mobydick
0 Replies

5. Solaris

gcc compiler uninstallation

OS : UNIX SUN SOLARIS 10 I installed gcc - 3.4.2 in sun solaris 10 unix machine. But i need to install gcc 2.7.2.3 now. Do i need to uninstall gcc-3.4.2 and install gcc - 2.7.2.3 or can i directly install gcc 2.7.2.3 without uninstalling gcc 3.4.2. I used pkgadd -d command to install gcc. (3 Replies)
Discussion started by: satish@123
3 Replies

6. Ubuntu

gcc compiler

where to download gcc compiler for ubuntu? how to install? how to build and run "c programs"? screen shots if possible.....:b::D tutorials too:cool: (5 Replies)
Discussion started by: villanarun
5 Replies

7. Shell Programming and Scripting

gcc compiler

I am using open suse linux. I want to install gcc compiler in my machine. I ahve checked man gcc and man cc. But it's not there. Can someone help me (4 Replies)
Discussion started by: pritish.sas
4 Replies

8. Programming

gcc compiler

Which gcc compiler release had the Arm 9 multicore support?Whether the compiler that used for the single Arm 9 core can be used for its multicore systems ? If gcc not support,please tell me which are the compilers that are available for Arm 9 multicore systems (including commerical).Whether... (0 Replies)
Discussion started by: sujith4u87
0 Replies

9. UNIX for Dummies Questions & Answers

cc compiler and gcc compiler

hi, can we install gcc compiler in unix based OS(sun solar,IBM AIX,HP,etc) and also can we install sun cc compiler in AIX environment and vice versa. and more ..is linux support cc compiler regards Ajay (3 Replies)
Discussion started by: ajaysahoo
3 Replies
CD-DRIVE(1)							   User Commands						       CD-DRIVE(1)

NAME
cd-drive - manual page for cd-drive version 0.83 i686-pc-linux-gnu SYNOPSIS
cd-drive OPTION... Shows CD-ROM drive characteristics. DESCRIPTION
-d, --debug=INT Set debugging to LEVEL -i, --cdrom-device[=DEVICE] show only info about CD-ROM device -q, --quiet Don't produce warning output -V, --version display version and copyright information and exit Help options: -?, --help Show this help message --usage Display brief usage message AUTHOR
Rocky Bernstein rocky@gnu.org COPYRIGHT
Copyright (C) 2003, 2004, 2005, 2007, 2008, 2011 R. Bernstein This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICU- LAR PURPOSE. Have driver: GNU/Linux ioctl and MMC driver Have driver: cdrdao (TOC) disk image driver Have driver: bin/cuesheet disk image driver Have driver: Nero NRG disk image driver Default CD-ROM device: /dev/scd0 SEE ALSO
cd-info(1) for information about the CD inside a CD-ROM. cd-drive version 0.83 i686-pc-linux-gnu October 2011 CD-DRIVE(1)
All times are GMT -4. The time now is 01:23 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy