GCC with-gxx-include-dir está configurado para simulador iOS 11.4

1

Estoy tratando de compilar https://github.com/zeromq/libzmq que requiere ejecutar autoconfy luego ./configure. Estaba funcionando hace unos días, pero ahora sucede esto:

checking for a BSD-compatible install... /usr/local/bin/ginstall -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/local/bin/gmkdir -p
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether UID '502' is supported by ustar format... yes
checking whether GID '20' is supported by ustar format... yes
checking how to create a ustar tar archive... gnutar
checking whether make supports nested variables... (cached) yes
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... configure: error: in `/Users/rajiv/libzmq/libzmq-4.2.5':
configure: error: cannot run C compiled programs.
If you meant to cross compile, use `--host'.
See `config.log' for more details

config.log muestra:

configure:4489: checking whether we are cross compiling
configure:4497: gcc -o conftest    conftest.c  >&5
configure:4501: $? = 0
configure:4508: ./conftest
dyld: mach-o, but built for simulator (not macOS)
./configure: line 4510: 98877 Abort trap: 6           ./conftest$ac_cv_exeext
configure:4512: $? = 134

Después de buscar en GitHub por un tiempo, parece que algo podría estar mal con GCC:

$ gcc -v

Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.4.sdk/usr/include/c++/4.2.1

Apple LLVM version 9.1.0 (clang-902.0.39.2)

Target: x86_64-apple-darwin17.7.0

Thread model: posix

InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

Parece que está intentando includedesde el SDK de iOS 11.4. ¿Cómo puedo cambiarlo de nuevo a la ruta correcta y cómo ocurrió este cambio? Lo único que se me ocurre es que instalé una actualización para las herramientas de línea de comandos de Xcode y puede que haya actualizado autoconfcon Homebrew

Rajiv
fuente
Dudo que /usr/include/c++/4.2.1 sea la inclusión correcta que es para un viejo gcc: Apple ya no suministra gcc sino clang. Me gustaría ver los sistemas de puertos como macports o Homebrew para ver cómo manejan los cambios que necesita esta compilación
Marque el
¿Por qué has usado una etiqueta homebrew?
Marcar el
@ Mark Asumí que ese era el directorio apropiado, pero realmente solo quiero cambiarlo a cualquier directorio que deba ser. Editaré la pregunta en consecuencia. Agregué la etiqueta homebrew porque no estoy seguro de si Homebrew influyó en este cambio, pero lo eliminaré
Rajiv

Respuestas:

1

Estaba viendo un problema similar.

$ gcc -v
    Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.4.sdk/usr/include/c++/4.2.1

En mi caso, esa configuración resultó en #include <stdlib.h>referencias como las bibliotecas de la plataforma del simulador de iOS / iPhone en lugar de las bibliotecas de macOS. Esto dio como resultado que obtuviera errores sobre la arquitectura incorrecta que se usaba al compilar.

La única solución viable que encontré fue desinstalar Xcode (eliminar la aplicación de /Applications) y desinstalar las herramientas de línea de comandos . Eso y un reinicio parecía resolver este problema en mi caso.

Will Haley
fuente
¡Gracias! Eso funcionó para mí. No está seguro de cuál era la causa, tal vez una actualización Xcode
Rajiv