Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

crt1.o no such file c++ compilation error on linux x64

Tags:

c++

linux

linker

I'm making my first steps on the linux platform. I've installed Centos x64. I'm attempting to build a small program with a couple of functions and a couple of unit tests.

I'm using Netbeans 7.1.2 as the development environment.

Here is the output from the build process:

CLEAN SUCCESSFUL (total time: 671ms)

"/usr/bin/gmake" -f nbproject/Makefile-Debug.mk QMAKE= SUBPROJECTS= .build-conf
gmake[1]: Entering directory `/home/john/Dev/GoatsCheese'
"/usr/bin/gmake"  -f nbproject/Makefile-Debug.mk dist/Debug/GNU-Linux-x86/goatscheese
gmake[2]: Entering directory `/home/john/Dev/GoatsCheese'
mkdir -p build/Debug/GNU-Linux-x86
rm -f build/Debug/GNU-Linux-x86/main.o.d
g++ -m32   -c -g -I/usr/include/cppunit -MMD -MP -MF build/Debug/GNU-Linux-x86/main.o.d -o build/Debug/GNU-Linux-x86/main.o main.cpp
mkdir -p dist/Debug/GNU-Linux-x86
g++ -m32    -o dist/Debug/GNU-Linux-x86/goatscheese build/Debug/GNU-Linux-x86/main.o  
/usr/bin/ld: crt1.o: No such file: No such file or directory
collect2: ld returned 1 exit status

The compiler is set to create a 32-bit executable, but I shouldn't think that would be a problem (32 bit executables can be created on an x64 platform on Windows - the platform I'm familiar with).

Locate finds the crt1.o file in the following places:

locate crt1.o
/usr/lib64/Mcrt1.o
/usr/lib64/Scrt1.o
/usr/lib64/crt1.o
/usr/lib64/gcrt1.o

I'm not sure if I'm missing a package or if I should create a symlink.

like image 294
fishfood Avatar asked May 28 '12 10:05

fishfood


1 Answers

You need to install the 32-bit standard C library development package. It's probably named something like libc6-dev-i386.

like image 170
Some programmer dude Avatar answered Sep 29 '22 01:09

Some programmer dude