C++ Linking Error: invalid DSO for symbol


 
Thread Tools Search this Thread
Top Forums Programming C++ Linking Error: invalid DSO for symbol
# 8  
Old 01-09-2015
Quote:
Originally Posted by achenle
What's the output from "file .../main.o" and all your other object files, from both GCC and clang? Maybe something shows up there.
Clang:
Code:
$ for o in `ls | grep -i "\.o"`; do file ${o}; done
abc.o: ELF 64-bit LSB relocatable, x86-64, version 1 (FreeBSD), not stripped
gnrcabt.o: ELF 64-bit LSB relocatable, x86-64, version 1 (FreeBSD), not stripped
main.o: ELF 64-bit LSB relocatable, x86-64, version 1 (FreeBSD), not stripped

g++:
Code:
$ for o in `ls | grep -i "\.o"`; do file ${o}; done
abc.o: ELF 64-bit LSB relocatable, x86-64, version 1 (FreeBSD), not stripped
gnrcabt.o: ELF 64-bit LSB relocatable, x86-64, version 1 (FreeBSD), not stripped
main.o: ELF 64-bit LSB relocatable, x86-64, version 1 (FreeBSD), not stripped

--- Edit ---

After stripping the object files I got this error from Clang:
Code:
/usr/bin/ld: error in gnrcabt.o(.eh_frame); no .eh_frame_hdr table will be created.
/usr/bin/ld: error in abc.o(.eh_frame); no .eh_frame_hdr table will be created.
/usr/bin/ld: error in main.o(.eh_frame); no .eh_frame_hdr table will be created.
/usr/lib/crt1.o: In function `_start':
/usr/src/lib/csu/amd64/crt1.c:(.text+0x16b): undefined reference to `main'
clang: error: linker command failed with exit code 1 (use -v to see invocation)
*** Error code 1


Last edited by AntumDeluge; 01-09-2015 at 12:09 PM..
# 9  
Old 01-09-2015
Thought it might be missing something.

main() is where your program begins, if that's missing it can't create an executable. Libraries on the other hand don't need a main().

Check that the code which is supposed to define it is getting compiled, and also check that main is being exported properly. If it's being hashed into a C++ overloaded name, the linker might not find it. You could give it a definition to avoid it being name-mangled.

Code:
// Forcing main to export as _main in a C++ program
extern "C" int main(int argc, char *argv[]);

// Actual definition for main
int main(int argc, char *argv[]) {
...
}


Last edited by Corona688; 01-09-2015 at 12:24 PM..
# 10  
Old 01-09-2015
wxgtk defines the "main" function:
Code:
#include "main.h"
#include "abc.h"

IMPLEMENT_APP(App)

bool App::OnInit()
{
    MainWindow *frame = new MainWindow(_T(""));
    frame->Show(true);
    SetTopWindow(frame);

    return true;
}

There must be a bug in the wxgtk2.8 build for FreeBSD. Guess it's time to start porting to wxgtk3.0 anyway. :-\

I'll try doing a custom build of wxgtk2.8.
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Linux

Help with Linux linking error

Hi, Currently I am migrating codes from unix to Linux. When doing linking(ld) getting the below error. Error is :ld: invalid BFD target `--shared' Providing the script of the ld: ld -b -G -o lib/libatk.so ./src/atk_db.o ./src/atk_gcl.o ./src/atk_options.o ./src/atk_exception.o... (1 Reply)
Discussion started by: jrkar
1 Replies

2. Programming

C program multiple definition error during linking time

Hi, I have the following files: // file.hvoid foo(); int i = 5; // should be just declared as extern int i; // file1.c#include <stdio.h> #include "file.h" void foo() { i = 10; printf("%d\n", i); } // file2.c#include <stdio.h> #include "file.h" int main() { foo(); (9 Replies)
Discussion started by: royalibrahim
9 Replies

3. Shell Programming and Scripting

01.30 Invalid shell error

Hi, I am getting the error 01.30 Invalid shell error I am running the bash shell script in the korn login shell. I have mentioned the #!/bin/bash statement in the my script but not sure why it is giving this error to me.. (4 Replies)
Discussion started by: mr_harish80
4 Replies

4. Solaris

/usr/lib/passwdutil.so.1: symbol __nsl_fgetspent_r: referenced symbol not found

deleteing post (0 Replies)
Discussion started by: dshakey
0 Replies

5. Web Development

Apache + DSO PHP

Hello, guys! I have a web server that uses PHP as DSO. Do you know any tool that can help me monitoring the CPU usage for any domain/subdomain that is hosted on this server? (1 Reply)
Discussion started by: Sergiu-IT
1 Replies

6. Programming

Symbol referencing error

Hey everyone, I can't figure out this symbol referencing error after looking at it for the longest time, and I figured some fresh eyes might be able to point something out I am overlooking. Undefined first referenced symbol in... (1 Reply)
Discussion started by: fromatz
1 Replies

7. UNIX for Dummies Questions & Answers

Link error while linking a shared library in unix

Getting the following error , ld: /opt/syncsort39/lib/libsyncsort.sl: Mismatched ABI. 64-bit PA shared library found in 32-bit link. Is there any difference in the ld options in opt file while linking a 64 bit shared library ? Or is the problem because we are trying to link both 32 bit and 64... (3 Replies)
Discussion started by: arunkumar_mca
3 Replies

8. Programming

symbol referencing error

Undefined first referenced symbol in file std::basic_ostream<char, std::char_traits<char> >::operator<<(int)/var/tmp//ccTR std::cerr /var/tmp//ccTRcjui.o std::cout /var/tmp//ccTRcjui.o... (1 Reply)
Discussion started by: suhasini
1 Replies

9. Programming

Linking problem while linking to shared library

Hi I'm getting ld: fatal: option -h and building a dynamic executable are incompatible ld: fatal: Flags processing errors When I run ld -shared -L/usr/dt/lib -lDtSvc -o builtin.so Workspace.o after running gcc -fPIC -I/usr/X11R6/include -I/usr/dt/include -c Workspace.c I'm... (6 Replies)
Discussion started by: laho
6 Replies
Login or Register to Ask a Question