x64 v7a significa saber que procesador i686 como caracteristicas arquitectura armv8l armeabi c++ macos

c++ - v7a - x86 que significa



Símbolos indefinidos para la arquitectura x86_64: ¿Qué arquitectura debo usar? (3)

Estoy tratando de hacer algunas cosas realmente simples en C ++, pero no puedo encontrar ninguna información sobre cómo abordar esto. Incluso el libro que acabo de decir "Simplemente compila y ejecuta el programa".

test.cpp

#include <iostream> using namespace std; int main() { cout << "Never fear, C++ is here!"; return 0; }

El compilador dice:

Undefined symbols for architecture x86_64: "std::cout", referenced from: _main in ccVfJHGs.o "std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)", referenced from: _main in ccVfJHGs.o "std::ios_base::Init::Init()", referenced from: __static_initialization_and_destruction_0(int, int)in ccVfJHGs.o "std::ios_base::Init::~Init()", referenced from: ___tcf_0 in ccVfJHGs.o ld: symbol(s) not found for architecture x86_64 collect2: ld returned 1 exit status

Intenté compilar con indicadores como -arch i386 y -m32 pero siempre dice que es la arquitectura incorrecta. ¿Cuál debería usar?

Estoy haciendo esto en una Mac pero no usando XCode, solo gcc.


El error no es que sea la arquitectura incorrecta, es que std::cout (y otros símbolos) no están definidos.

Debe compilar y vincular con g++ not gcc , para vincular automáticamente con las bibliotecas correctas de C ++.


El error se debe a que está compilando con gcc , que solo vincula por defecto a libc . Necesitas compilar con g++ para que libstdc++ se vincule automáticamente.


Use g ++ en lugar de gcc para vincular con las bibliotecas exactas de c ++