g++ fails to link to static library when compilation and link in single command

Thread Tools Search this Thread
Top Forums Programming g++ fails to link to static library when compilation and link in single command
# 1  
Old 03-13-2012
g++ fails to link to static library when compilation and link in single command

Hello All,
I've encountered a strange behaviour from g++ that doesn't make sense to me. Maybe you can shed some light on it:

I have a bunch of source files and want to compile them and link them with a static library liba.a located in /usr/local/lib64 into an executable

Approach 1 works fine:
g++ -c file1.cc
g++ -c file2.cc
g++ -c file3.cc
g++ -o executable file1.o file2.o file3.o -la

Approach 2 doesn't work:
g++ -o executable file1.cc file2.cc file3.cc -la

That causes a load of undefined references, It's a shame, because method 2 is what my makefile produces.
Can anyone tell me the difference between 1 and 2 and how to fix it?

Thanks a lot,
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Solaris

/var/adm/messages (insterface turned off/restored) and link up & link down message.

Hi All I am facing an issue with our new solaris machine. in /var/adm/messages Apr 22 16:43:05 Prod-App1 in.routed: interface net0 to turned off Apr 22 16:43:33 Prod-App1 mac: NOTICE: nxge0 link up, 1000 Mbps, full duplex Apr 22 16:43:34 Prod-App1 mac: NOTICE: nxge0 link... (2 Replies)
Discussion started by: javeedkaleem
2 Replies

2. Solaris

/var/adm/messages (interface turned off/restored) and link up & link down message.

Hi All I am facing an issue with our new solaris machine. in /var/adm/messages root@Prod-App1:/var/tmp# root@Prod-App1:/var/tmp# root@Prod-App1:/var/tmp# cat /var/adm//messages Apr 20 03:10:01 Prod-App1 syslogd: line 25: WARNING: loghost could not be resolved Apr 20 08:24:18 Prod-App1... (0 Replies)
Discussion started by: javeedkaleem
0 Replies

3. UNIX for Advanced & Expert Users

Xserver shared library link is gone

I am administering an Xserver v10.6.8 and I updated the ports using Macports self update. I received this error when calling the program R dyld: Library not loaded: /opt/local/lib/libicuuc.48.dylib Referenced from: /opt/local/lib/R/lib/x86_64/libR.dylib Reason: image not found Trace/BPT... (2 Replies)
Discussion started by: godzilla07
2 Replies

4. UNIX and Linux Applications

Tomcat 6.0 fails to read symlink(symbolic link) file

Hello all experts, Im in a situation where Tomcat simply does not want to read this file through the symlink.... I checked permissions..OK Also checked file & tomcat owner...all OK. This is what I have my /tomcat/conf/Catalina/local/appname.xml <Context> <Resource name="jdbc/black" ... (3 Replies)
Discussion started by: KingaKoopa
3 Replies

5. UNIX for Dummies Questions & Answers

[Solved] Symbolic link not allowed or link target not accessible

Hi everybody, I read about treads realted to this issue but they did not resovle issue given below. Please help me resolve issue given below I have html file under /srv/www/htdocs/actual_folder ls actual_folder/ test.html and following link works... (0 Replies)
Discussion started by: newbielgn
0 Replies

6. Linux

Linux Library symbolic link damaged

Hi, firstly I am not so familiar with linux and i think i have done some damage to the red hat server. It seems that now in command line I am unable to use any basic command whatsoever (ls, move, cp, bash, etc). I was trying to deploy an application and have changed the symbolic link (soft... (1 Reply)
Discussion started by: zaxx
1 Replies

7. UNIX for Dummies Questions & Answers

Difference between hard link and soft link

Hi Experts, Please help me out to find out difference between a hard link and a soft link. I am new in unix plz help me with some example commands ( for creating such links). Regards S.Kamakshi :) (2 Replies)
Discussion started by: kamakshi s
2 Replies

8. Solaris

link a library compiled with SC 5.9 on a machine with SC5.8

Is it possible to link a library compiled on Solaris 10 with SunCompiler 5.9 in a project compiled with SC 5.8 ? Is there an option to "downgrade" the SC5.9 => SC5.8 to be sure of the compatibility ? Thanks 4 your help (2 Replies)
Discussion started by: sarastus
2 Replies

9. UNIX for Dummies Questions & Answers

Difference between hard link and soft link in unix

Hi All, Can any one please explain me what is the difference between hard link and soft link in UNIX. Thanks in advance Raja Chokalingam. (2 Replies)
Discussion started by: RAJACHOKALINGAM
2 Replies

10. Programming

use gcc and link with a library

Hello, J have a problem when I use gcc: This comand works: gcc -shared -fpic -I/usr/include/sys -I/usr/include -L/usr/lib/librt.sl essai1.c mylib.sl but gcc I/usr/include/sys -I/usr/include -L/usr/lib/librt.sl essai2.c -o essai don't work. The first command creates a dynamique... (1 Reply)
Discussion started by: AUBERT
1 Replies
Login or Register to Ask a Question
FORT77(1)						     Linux Programmer's Manual							 FORT77(1)

fort77 - invoke f2c Fortran translator transparently, like a compiler SYNOPSIS
fort77 [-c] [-g] [-v] [-k] [-P] [-cpp] [f2c option ...] [-L directory ...] [gcc-option ...] [link option ...] [-O optlevel] [-o out- file] [-s] [-w] [-Wx,arg1[,arg2]...] file ... DESCRIPTION
The fort77 script invokes the f2c command transparently, so it can be used like a real Fortran compiler. It can be used to compile For- tran, C and assembler code, and to link it with the f2c libraries. File arguments ending with .f are compiled as Fortran source files. Files which end with .P are passed through to f2c, and files ending with .F are passed to the C preprocessor (invoked as "/lib/cpp -traditional") first. Any switches passed via -D will be passed to the pre- processor. If the translation is successful, the resulting C files will be passed to cc for translation into an object file. Files ending in .c, .C, .cc, .i, .s, .S, .m, .cc or .cxx are passed to the GNU C compiler directly; see gcc(1). All other files are passed to the linker. OPTIONS
-c Supress linking and produce an object ( .o ) file from each source file. -g Include debugging information. -v Be verbose; supplying this twice will also tell the C compilers etc to be verbose. -k Keep the C files generated by f2c around. -cpp Pass Fortran code through the C preprocessor, as if filenames ended in .F. -P Generate f2c .P files. -Ldirectory Include directory in the search for libraries in the final linking stage. -o outfile Send output to outfile. -trapuv Have f2c generate code to trap uninitialized values. -Wx,arg1[,arg2...] Pass the argument[s] argi through to the subprocess x, where x can assume one of the following values: f for the f2c step, p for the preprocessing step, c for the C compiler, a for the assembler (this is actually passed to the C compiler, too), and l for the linker. As an example, defining a preprocessor constant for the C compilation step would be done with -Wc,-DUNIX=1. Specifying the -f option to f2c would be done via -Wf,-f. f2c option fort77 passes through almost all f2c options: -C, -U, -u, -a, -E, -h, -P, -R, -r, -z, -I2, -I4, -onetrip, -!c, -!l, -!P, -!R, -ext, -!bs, -W[n], -trapuv, -w8, -r8 and -w66. gcc options The following options are passed through to gcc: -f*, -W*, -U*, -A*, -m*, -S, -E, -v, -x, -pipe, -o, -I, -V, -b*, -p, -pg. linker option The options passed to the linking stage are -static, -shared, -v, -V, and -symbolic. BUGS
To make debugging work, you need to set a breakpoint at MAIN__ before you start. f2c This script automatically supplies the -I. option to f2c. Older versions of f2c may not support this. This script is for the interaction of gcc and f2c; using it with another compiler will probably require modification. The fort77 script does not strictly conform to Posix.2, because it acceppts long options with one leading slash. This is done for gcc com- patibility. SEE ALSO
f2c(1), cc(1), as(1), ld(1) AUTHOR
Thomas Koenig, ig25@rz.uni-karlsruhe.de Linux Nov 1996 FORT77(1)

Featured Tech Videos