Programming :: Undefined Symbols When Linking A With Main O Files
Feb 17, 2010
I am using Centos 5.4 with gcc v4.1.2. If I take a bunch of .o files and I then link with my main.o to form an executable then this links and executes just fine. If however, I try to create an archive file (.a) using 'ar rus xxx.o yyy.o etc' and then try to link the resulting .a with my main.o then I get 'undefined symbol' linker errors and I don't understand why.
View 2 Replies
ADVERTISEMENT
Mar 9, 2009
I have created a simple test class - Mortgage, with the class declaration in the .h file and the class's methods defined in the .cpp file. (mortgage.h && mortgage.cpp, respectively) Straight up C++ 101 as far as I can tell. I instantiate the class in the main() function, which is defined in practice.cpp. Using Geany on Ubuntu, both the practice.o and mortgage.o files are created, but then I get a linker error: undefined reference to class::functionName
I get it for each function. If the mortgage.cpp file is foremost in the editor when I click "build", then I get the undefined reference to main() error, if practice.cpp is foremost (where the main() function is) then I get undefined reference to Mortgage::Mortgage(), and all the rest of the functions defined for that class. How do I get the linker to know where my object files are so it will link them in? Or is the problem somewhere else entirely?
View 8 Replies
View Related
May 27, 2010
I am trying to add some function to the c++ project (calling function) and the called function are in C. And i am getting error "undefined reference to "Hello(int,int)" " while linking. It is compiling correctly. It is linking to header file mention in the calling function. This header file has definition to the c - called function. Do you thinking having c files into C++ project will be a problem? Should I remove <stdio.h> in c files?
View 2 Replies
View Related
Jun 22, 2010
When I try to compile my code using g95 or gfortran:
Code:
subroutine dipole_tilt(glong, glat, utsec, tau, day, hgraze)
implicit none
[code]....
View 4 Replies
View Related
Apr 27, 2011
I'm writing a binary search tree class to insert records and I'm stuck on the following error:
Code:
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/crt1.o: In function `_start':
(.text+0x20): undefined reference to `main'
collect2: ld returned 1 exit status
Here is the code for my class:
[Code]...
I really don't know how to approach this, I thought that everything was working fine but I have no idea what is wrong. Also, for clarification, main() is in a different .cpp file that #includes "tree.h"
View 13 Replies
View Related
Apr 13, 2011
I've having problems with my Makefile.
I'm trying to create a program from 2 files - main.cpp that contains the main function, and modules.c that contains the definitions of the functions that are called in main(). modules.c only contain function definitions, no main function.
My Makefile is as follows:
Code:
I have included "modules.h", which contains all the function declarations, in my main.cpp.
When I try to make using this Makefile, I get the error
Code:
If I switch the order of modules.o and main.o in my $(TARGET) line, then I get errors that say "undefined reference to" the functions I have defined in modules.c, in main.cpp.
View 4 Replies
View Related
Jan 19, 2011
I'm writing a C program using WordNet, just a very basic one to test out if everything was working fine, but I'm getting undefined references. I linked to the library and compile with
Code:
gcc prog.c -L/usr/local/WordNet-3.0/lib/libWN.a -I/usr/local/WordNet-3.0/include/
This seems to be the only wordnet library to link to, but I'm still getting the error
Code:
/tmp/cc4C3I3S.o: In function 'main':
prog.c:(.text+0x21): undefined reference to 'is_defined'
prog.c:(.text+0x48): undefined reference to 'findtheinfo'
collect2: ld returned 1 exit status
I feel it must be an error with the way I'm going about trying to link the files.
View 4 Replies
View Related
Apr 5, 2010
By issuing the 'nm' command on shared library (internally using one static library), the functions exposed by static library is also being listed, Which allows to use internal functions which is of course not intended. I have one static library having A(), B() and C() functions. Creating one shared library which has function XYS() that is using A() and B() functions from Static library. While doing 'nm' on shared library, all the static library function are being listed.
Static Lib:
#include<stdio.h>
void A(char *msg)
{
printf("
[code]....
View 4 Replies
View Related
Jan 23, 2011
I'm trying to build a shared library, and am receiving several undefined reference linking errors. Specifically, ffmpeg linked with libx264. I'm aware that this is not an appropriate forum for questions specific to ffmpeg or libx264. In order for one library / application (ffmpeg) to reference another library (libx264), the linker has to know where the referenced library (libx264.so) is located in the file system.
I'm pretty sure the linker knows where libx264.so is, because I receive a different error message when I run ffmpeg's configure script if the linker can't find libx264.so. In general, should running the install target of a make file be preferred over specifying the appropriate paths in the CFLAGS and LDFLAGS environment variables? I've tried both, and it doesn't seem to make a difference in regard to my error which method I choose.
How exactly is a library referenced? My error messages are
/root/ffmpeg/libavcodec/libavcodec.so: undefined reference to `d26'
/root/ffmpeg/libavcodec/libavcodec.so: undefined reference to `d22'
/root/ffmpeg/libavcodec/libavcodec.so: undefined reference to `d2'
/root/ffmpeg/libavcodec/libavcodec.so: undefined reference to `d20'
/root/ffmpeg/libavcodec/libavcodec.so: undefined reference to `d24'
/root/ffmpeg/libavcodec/libavcodec.so: undefined reference to `d0'
/root/ffmpeg/libavcodec/libavcodec.so: undefined reference to `q1'
If I can find out what library 'd26', 'd22', etc. are declared in, I should be able to resolve the undefined references. What exactly are 'd26', 'd22', etc.? Are these functions, classes, or something else? How can I find out what functions / classes are defined in a particular library?
View 2 Replies
View Related
Apr 11, 2010
This is probably a really stupid thing to ask considering the development I'm doing (effectivly creating a virus scanner), but how do I link classes/cpp files?I have 3 applications/sections that I can compile/combine with a makefile, that's fine, but I need them to run 1, 2, 3 once the output from the makefile is done.Currently the only section to actually run is whichever I have "main" in and obviously if I put that into all three, they won't compile as one.I've been looking all over the place at all sorts, header files and such, but there is no mention of how toually do this although I'm sure it must be possible. I'm used to being able to do this in Java and I'm sure I've seen C++ applications do it, but not worked out how.I have 3x .cpp files which are combined into one using a makefile:
Code:
# Virus Scanner
scanner.out : ProgramList.o MD5Hash.o HazardCheck.o
[code]...
View 2 Replies
View Related
Mar 13, 2011
compiling and linking using gcc: What does a file name with a suffix '.a' represent? If I have multiple .c and .h files, how can I link them together? How can I create the .a file?
View 6 Replies
View Related
Apr 18, 2010
I have written an OpenGL based program which uses i.a. libjpeg that I want to link statically so I can send it to someone who doesn't have all the libraries needed installed to allow for a dynamically linked executable to run. As such I tried with giving the [b]-static[b] parameter to gcc.
Code:
x86_1$ make
gcc -O3 -c jpegloader.c
gcc --std=c99 -O3 -c --std=c99 -I/usr/include -L/usr/X11R6/lib main.c
[code].....
Why would gcc claim that I'm missing GLUT? This works perfectly fine when I do dynamic linking -- i.e. omitting the -static argument.
View 13 Replies
View Related
Dec 17, 2009
I have 3 c++ files, classdef.h (header file with class definition), methods.cpp (class methods) and program.cpp - the program itself. Both .cpp files have
Code:
#include "classdef.h"
in files. How I can link the files together and compile them in one executable program? I am using Geany IDE for coding.
View 4 Replies
View Related
Feb 14, 2010
I keep getting the error:
Here is my code:
View 2 Replies
View Related
Aug 9, 2011
After messing up with grub, I reformatted my hdd and installed opensuse 11.4 (gnome+kde) from the dvd and also included the java sdk while installing, now the problem is that whenever i compile a java program, I get this error Code: /usr/src/packages/BUILD/glibc-2.11.3/csu/../sysdeps/x86_64/elf/start.S:109: undefined reference to `main'
View 3 Replies
View Related
Oct 19, 2010
I'm running gdb across a network using gdb server. I've got it up and running. However I can't see any source or variables for my code (in ddd /gdb). At start up gdb says (no debugging symbols found). I've got a g in my make file,
CPFLAGS = -Wall -Os -g -pedantic
I've tried loading symbols in using "symbol-file testarm", this sort of works in that I can view symbols but not names, e.g. if I ask dd to show x y and z, rather than
x = 10
y = 20
x = 30
It says:
display
10/20/30
Also ddd does not show anything in the source window, is there a way I can get it to show this? I think it's because I've started ddd with ddd arm-linux-gdb, as I'm calling a crosscompiler gdb. So can I tell ddd to point to the correct folders? What commands I need to set in gdb/ddd to view variable names (it's hard to keep track when it bunches them all together) and how to view my source code.
View 2 Replies
View Related
Nov 27, 2010
I decided to try making a programming language again after my last unsuccessful attempt, so now I figured how to write a good AST and it works great when the nodes are hard-coded into a test program. But to make a language out of it, I need a parser to build the tree according to an input file. I ran into a problem here:
YACC input file:
Code:
%{
#include "nodes/allnodes.h"
#include "Node.h"
int vars[26];
%}
%token SEMICOLON INTEGER VARIABLE IF WHILE DO OPAREN CPAREN OBRACE CBRACE
%right ASSIGN
%left NE
%left PLUS MINUS
%left TIMES DIVIDE
%% .....
As you might see, each nonterminal creates a Node* object and uses it as its value. The problem is that the literal tokens, however, don't return Node*'s and I don't know what to do. I would like to be able to convert literal tokens to nodes in the Lex file (which would avoid the problem), but the problem is with the assignment operator, which takes a Node* for the right-hand side and a variable name (not a Variable Node, because they just evaluate the the variable's value and you can't change the variable with them) for the left hand side.
View 14 Replies
View Related
Aug 22, 2010
I was going through some exercise given in my school. I have read the C book but I am not able to understand some part. That is static variable. What exactly is a static variable and what does it do? I saw in Linux Kernel Programming external and exported are also some thing. I am not getting the difference between static,EXPORT_SYMBOL,external variable types. If I make a kernel module then how will I make sure that my variable is visible to the kernel. Is this what it is all talking about? I have checked this page [URL].
View 2 Replies
View Related
Apr 29, 2010
I have a C code and assembly (nasm) code and I am not able to find how to link them each other. Here are the codes :
NASM side:
Code:
global_maxofthree
section .text
_maxofthree:
[code]....
I am using ubuntu 9.10 and my NASM version 2.05.01 compiled on Nov 5 2008.
View 4 Replies
View Related
Apr 2, 2010
I am trying to port c & c++ open source code onto embedded target(MIPS).It compiles fine on x86/RH4. When I try embedded platform specific tool chain as follows, I get following error:
I tried different combinations. It did not help. My idea is to port an open source code that works fine on X86/Linux to an embedded target based on MIPS.
View 4 Replies
View Related
Jun 10, 2010
There's a problem with static linking (and no problems with dynamic linking).
Here's my code:
Quote:
And makefile rule:
Quote:
That's dynamic linking. And it works perfectly. If i use static linking
Quote:
There is an undefined reference error:
Quote:
As nm shows there's a symbol named BuzzerInit in static library.
View 2 Replies
View Related
Dec 11, 2010
I am trying to build an application that must link with python so as to load a python module during runtime.I have this makefile :
Code:
[alex@iskandhar src]$ cat Makefile
CFLAGS = -Wall -O3 -I ../../../SPOOLES.2.2 -DARCH="Linux" -DSPOOLES -DARPACK
[code]....
View 4 Replies
View Related
Oct 5, 2010
I have a really simple program trying to use XInput2.h, which fails on linking
Code:
#include <X11/extensions/XInput2.h>
int main(){
Display *XSession = XOpenDisplay(NULL);
int OriginScreen = 0;
int pID = 7;
[Code]....
I'm at a loss about what to do. Replacing XIWarpPointer by XWarpPointer and removing the pID argument solves it, but is not an option (no input ID).
View 5 Replies
View Related
Aug 21, 2010
Arm-linux-strip for removing the symbols from binary executable file after compilation. What exactly the symbols means.
View 1 Replies
View Related
May 4, 2010
I have a shared library (built from C++ code) and a separate C program which calls (extern) functions from the said library.
Also one of the functions in that library needs to call a function in this C program by declaring it 'extern'. This sort of creates a cyclic dependency.
I am getting "unresolved references" error, as expected.
View 3 Replies
View Related
Jan 6, 2011
I wasn't sure where to put this so if I need to move it just let me know.I have a strange problem that I cannot figure out. When I use gdb to debug our rpm-installed program, it says (no debugging symbols found) when it loads. Thing is, when I use nm on the program it can print the symbols, and even stranger is if I use gdb on the program before it is packed up by rpmbuild it loads the debug symbols just fine.Our program is built via the standard make using:GS=-g -Wall-pedantic and as I mentioned I can debug the resulting program. After the build, I package it up using:
cmd="rpmbuild -v -bb ptsnmp.spec --define "ver ${cmvc_release}" --define "rel ${cmvc_level}" --define "_topdir $rpmdir""When this package is installed via rpm, the binary on the machine shows all the debug info via nm, file shows it is not stripped:pt_snmp: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not strippedyet when I try to debug it I get the no debugging symbols found.This is really taxing my brain and I am sure I am just missing something
View 4 Replies
View Related
Sep 2, 2010
Does anyone have the name of a good program that will allow me to create text files with mathematical notations and symbols? I like to ptake notes at school on my laptop but I find it difficult to do so in my math classes. I just downloaded a program called Mirai Math. Haven't tried it yet but it looks a little to clunky. I'm looking for something simple.
View 7 Replies
View Related
Oct 28, 2010
I have a question about shared objects and when mapping and linking is established in the following code...Well more of a verification.
getsetx.c - shared object source code Code: unsigned long x = 0;
unsigned long getx(void)
{
return x;
}
[Code].....
Now its my understanding when I execute ./testit, getsetx.so will get mapped into its address space at start up and testit will link any functions as they are needed..
View 3 Replies
View Related
Jan 9, 2011
I tried to link my executable program with 2 static libraries using g++. The 2 static libraries have the same function name. I'm expecting a "multiple definition" linking error from the linker, but I did not received.
Code:
//staticLibA.h
#ifndef _STATIC_LIBA_HEADER
#define _STATIC_LIBA_HEADER
int hello(void);
[code]....
View 4 Replies
View Related
Jan 22, 2011
I have set up Eclipse + CDT on an Arch 2010.05 install. I set up an eclipse project and added SDL as a dependency (see below):
Project -> Properties
* -> GCC C++ Compiler -> Preprocessor -> main=SDL_main
* -> GCC C++ Linker -> Libraries -> SDLmain SDL (in that order top to bottom)
* -> GCC C++ Linker -> Libraries -> Library Search Path -> /usr/lib/ (I verified that libSDL.a and libSDLmain.a are there)
This is the code I'm compiling. It's designed to just be a hello world style SDL app to see that everything is working.
[Code]...
View 3 Replies
View Related