G ++ advertencia: construido para el formato de archivo no compatible que no es la arquitectura está ligada

StackOverflow https://stackoverflow.com/questions/4467871

Pregunta

Cuando intento compilar mi proyecto (con la g++ *.hpp *.cpp 2> log.txt línea de comandos), que es lo que me pasa:

log.txt:

ld: warning: in configfile.hpp, file was built for unsupported file format which is not the architecture being linked (x86_64)
ld: warning: in erase.hpp, file was built for unsupported file format which is not the architecture being linked (x86_64)
ld: warning: in filehandler.hpp, file was built for unsupported file format which is not the architecture being linked (x86_64)
ld: warning: in insert.hpp, file was built for unsupported file format which is not the architecture being linked (x86_64)
ld: warning: in operation.hpp, file was built for unsupported file format which is not the architecture being linked (x86_64)

¿Alguna idea de por qué ocurre esto? Estoy en OSX 10.6 (utilizando las últimas herramientas de desarrollo)

¿Fue útil?

Solución

Esta compilación de archivos de cabecera (.hpp), que no se debe hacer todavía. Sólo los archivos de origen de compilación (.cpp)

En lugar de compilar todos los archivos .cpp, compilar ellos uno a la vez y luego enlazar adecuadamente.

g++ -c x.cpp
g++ -c y.cpp
g++ -c z.cpp

g++ -o tst x.o y.o z.o

Tenga en cuenta que sólo una de sus archivos .cpp puede tener una función main () -. De lo contrario el sistema operativo no sabe dónde está el punto de entrada es

Otros consejos

No es dueño de un Mac por lo que estoy un poco dándole la versión para Linux de qué hacer cuando esto sucede.

Busque una versión de gcc y multilib recompilación con el -m32 interruptor

g++ *.hpp *.cpp -m32

Probar. Se puede compilar los archivos de cabecera con gcc para encabezados precompilados producen.

El parámetro g ++ -arch i386 debe hacer el truco para usted:

g++ *.hpp *.cpp -m32 -arch i386

Es correcto?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top