Page 1 of 1

The flip?

PostPosted: Sun Feb 12, 2006 12:30 am
by Icarus
I was running configure on dansguardian, and this came up:

Code: Select all
...
checking for C++ compiler default output file name... configure: error: C++ compiler cannot create executables
See `config.log' for more details.

Salient portion of the log is this:

Code: Select all
configure:1958: g++    conftest.cc  >&5
/usr/bin/ld: crt1.o: No such file: No such file or directory
collect2: ld returned 1 exit status
configure:1961: $? = 1
configure: failed program was:
| /* confdefs.h.  */
|
| #define PACKAGE_NAME "dansguardian"
| #define PACKAGE_TARNAME "dansguardian"
| #define PACKAGE_VERSION "2.9.5.0"
| #define PACKAGE_STRING "dansguardian 2.9.5.0"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE "dansguardian"
| #define VERSION "2.9.5.0"
| /* end confdefs.h.  */
|
| int
| main ()
| {
|
|   ;
|   return 0;
| }
configure:2000: error: C++ compiler cannot create executables
See `config.log' for more details.


I just reinstalled G++ 4.0 using Synaptic today, and there weren't any errors that i recall.

PostPosted: Sun Feb 12, 2006 2:34 am
by Slater
uhm... I don't think that g++.out is in that dir...

PostPosted: Sun Feb 12, 2006 10:29 pm
by Icarus
could you explain?

PostPosted: Mon Feb 13, 2006 5:56 pm
by Mithrandir
I'm not sure where Slater was headed with that, but it looks like the log files indicate that it can't find ld in the location specified (/usr/bin/ld). Try using the which command to see where it's located. Like this:

Code: Select all
lum:~ mithrandir$ which ld
/usr/bin/ld



It should tell you where the ld command is on your distrobution. If it cannot find one, try using find to locate it:

Code: Select all
lum:~ mithrandir$ find / -name ld
/usr/bin/ld
[ NOTE: Lot's o permission errors left out on purpose ]


If you still can't find it, make sure the installer you are running is meant for your distrobution of Linux. If you're not sure, let us know what your distro is and we'll see if we can help track it down.

PostPosted: Mon Feb 13, 2006 7:24 pm
by shooraijin
No, actually, I disagree: /usr/bin/ld is the executable raising the error. It's unable to find a crt1.o (crtl.o?) object file to link against.

This should be part of the standard compiler distribution. This may be helpful:

http://fredrik.hubbe.net/hacker/viewtopic.php?p=1296

I wonder if your gcc/g++ tools collection was incorrectly installed.

PostPosted: Mon Feb 13, 2006 7:40 pm
by Mithrandir
Ah. I was a bit hasty there, I see; you're right. Trust shooby to keep my honest. ;) Look for crt1.o (I don't think it's crtl.o, but you can check for that) using the find command above. You should see:

Code: Select all
lum:~ mithrandir$ find / -name crt1.o
/usr/lib/crt1.o


If you don't find it, you may want to reinsall glibcc.


edit: Ah. Check out shooby's link there. That's much more elegant than my post here.

PostPosted: Tue Feb 14, 2006 8:55 pm
by Icarus
thank you, thank you.