Software :: Gcc Does Not Show Undefined Reference Error?
Jul 25, 2010
When the following little C program is compiled with gcc it does not get a compile error even though the function atof is undefined. If I change it to xatof then it goes get an "undefined reference" error. (I knowthat atof is a library function, and I know that it resides in stdlib.h But since I did not include stdlib.h I would think that it would give me an error). What am I missing here?
I am trying to install NOX which is a openflow controller and it needs Xerces-C++ this. I installed it successfully on the Debian. The output of the xerces after running the "make install" command is as follows which shows that is successfully installed on the machine.
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.
I am slowly getting accustomed with linux issues and its different programming compilation stuffs. and i must say am truly liking it. Now i am facing this typical error , "undefined reference to `clock_gettime'" while i am compiling a code, which is not mine as it required to install a simulator. Now i have read about this type for the last 2 days and i have included "-lrt" in the make file and included <time.h> in the header files which was missing but still i am getting that error.
Now matter how many times i run the make file with the required changes its still giving me this error, which i have comprehended as mainly linking problem rather than a compilation issue.
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'
I am facing some problems when i am trying to link using g++. The linker error text is "undefined reference to `std::vector<std::string, std::allocator<std::string> >::end()'"
I am facing the problem of calling cfitsio library from C program in linux. when i am givingthe option "gcc -o CreateLevel1DataFitsFile CreateLevel1DataFitsFile.c -lm -lcfitsio "i am getting following error
/usr/lib/../lib/gcc/i386-redhat-linux/3.4.4/../../../libcfitsio.a(getcolj.o)(.text+0x7065):/backup/Astrosat/learning/cfits/cfitsio/getcolj.c:3098: more undefined references to `__xtoll' follow
I am getting the bellow linker error with GCC 4.4 and GLIBC 2.12.
1. /usr/lib/../lib64/crt1.o: In function `_start': (.text+0x12): undefined reference to `__libc_csu_fini' 2. /usr/lib/../lib64/crt1.o: In function `_start': (.text+0x19): undefined reference to `__libc_csu_init'
I get this error : debug/libns3.so: undefined reference to `SHA256_Update' debug/libns3.so: undefined reference to `SHA256_Final' debug/libns3.so: undefined reference to `SHA256_Init' collect2: ld returned 1 exit status
When I compile my code in Linux (ATCA machine), I am getting the following error: /vobs/ims_do/lib/rhlinux/debug/libnem-dummy_td2.so: undefined reference to `__isoc99_sscanf'
The same code is being compiled in Solaris without any problems.
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?
Do you have any ideas why does wxHyperlinkCtrl doesn't work on Linux?It has an error which says..."/usr/include/wx-2.8/wx/gdicmn.h:215: undefined reference to 'vtable for wxHyperlinkCtrl'"Do I have to include a certain library so that it will work in Linux? I try to compile it in windows and its succesful.'m having a problem on Linux guysinitialize the wxHyperlinkCtrl like this... wxHyperlinkCtrl* hyperlink1 = new wxHyperlinkCtrl();and included #include <wx/hyperlink.h> Is there something missing on it?... I already had tried supplying parameters on the constructor but same thing it gives me an error
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"
I am trying to update gtk+. I have installed pango-1.26.2 and glib 2.22.5. I see some error information, from google i know that it is old glib library fault. Ichecked. pkg-config --modversion glib shows 1.2.*** and pkg-config --modversion glib-2.0 shows 2.22.5. It looks like gtk+ using older 1.2.**.
I'd like to learn debugging techniques as much as to solve this particular problem. While trying to build yad 0.5.1:
Code:
yad-notification.o: In function `yad_notification_run': /tmp/yad-0.5.1/src/notification.c:330: undefined reference to `gtk_status_icon_set_tooltip_text'
According to the source package's README file, "Yad depends on gtk+ only. Minimal gtk+ version is 2.12.0". I checked /var/log/packages and found gtk+2-2.14.7-i486-4 is installed.
Inspecting /tmp/yad-0.5.1/src/notification.c showed that gtk_status_icon_set_tooltip_text is a function. So it should be declared in the gtk+2-2.14.7 header files (or not?).
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?
I have a little C++ program that I am attempting to connect to a test database.
#include <iostream> using namespace std; #include <sqlite3.h> int main () { int rc; [Code]....
When I compile this code, I get the error: undefined reference to `sqlite3_open' I added sqlite3 package using the command 'apt-get install sqlite3'. Unfortunately the sqlite3.h header file was not installed in /usr/include, so I downloaded the SQLite3 dist., untarred it and copied the sqlite3.h file to /usr/include. I saw on a previous message that I would need to link the library. The only library file in /usr/lib is libsqlite3.so.0, so the command g++ -lsqlite3 still gives me an error.
When I try to build rpm-4.8.1 on RHEL6 i686, some errors after `make`:
[Code]....
What package should I need to install? I searched a lot and found someone said it needed gzip and/or gzip-devel. My system already has gzip installed. But I can't find where to get gzip-devel. Is this true? I need to install gzip-devel to make?