Problemas de selección de versión y producción del compilador cruzado Arm-linux-gcc.
Además, quienes usan RH9 son todos expertos, por lo que no creo que sea necesario preguntar sobre tus conocimientos.
1. La compilación de programas arm en una PC ciertamente requiere un compilador deficiente. Debe instalarlo usted mismo o utilizar un entorno de compilación cruzada listo para usar, generalmente gcc binutils glibc linux, compilado con un parámetro especial. encabezamiento. Esto se debe a que el entorno de movimiento de cada persona es diferente. Por lo general, debe compilarlo usted mismo. Por supuesto, si no hay una necesidad especial, también puede encontrar uno ya preparado. Sin embargo, es difícil de encontrar porque este entorno debe coincidir con el sistema que desea mover. De lo contrario, el entorno no coincide y ni siquiera puede ejecutarse, y mucho menos compilarse.
Para obtener más información sobre cómo crear su propio entorno de compilación cruzada, consulte una rama especial de la distribución de Linux LFS: CLFS.
2. El trasplante tiene muchos significados. El trasplante puede significar que el código fuente no se puede compilar en el sistema de destino y debe modificarse en función del conocimiento correspondiente para que el código se adapte a los requisitos. Por ejemplo, el compilador de destino tiene optimización para SSE4 en el código fuente y el programa no se puede compilar ni ejecutar en una CPU que no sea SSE4, pero la máquina de destino ni siquiera admite SSE1. Entonces se necesita un trasplante.
O el trasplante es simplemente compilar de acuerdo con el nuevo entorno, sin modificar el código fuente. Solo necesita hacer una pequeña compilación para ejecutar el programa. También se puede llamar trasplante desde un entorno y arquitectura. a otro entorno, la arquitectura". También se le puede llamar trasplante, de un entorno y arquitectura a "otro entorno y arquitectura", pero el trasplante real significa modificar el código fuente del programa para adaptarse al nuevo entorno. El tipo de trasplante del que estás hablando es el más simple.
3. Determinar el entorno de hardware de destino--→Construir el compilador de destino--→Crear el entorno de destino (kernel, biblioteca de software básica)--→Realizar el trasplante de aplicaciones (software necesario para el trasplante, aplicaciones principales) ) --→ Construir el sistema de archivos del sistema --→ Importar el sistema de destino --→ Iniciar el sistema y la aplicación de destino. Es fácil de decir, porque se trata de una condición que no presenta ningún problema.
En cuanto a HyperTerminal. Se utiliza para controlar el sistema objetivo. Lo más probable es que el sistema de destino no tenga un monitor de teclado y mouse conectado, lo que requerirá un enlace de red remoto para su control. Los datos también deben enviarse a través del enlace remoto. Todo esto requiere soporte de terminal.
Desarrollar bajo una máquina virtual no puede aprovechar el rendimiento del ordenador. Y debido a que está separado por la capa de emulación de software de VMware, es posible que todavía no puedas vincularlo fácilmente al dispositivo de destino.
En cuanto al uso de sockets, no he visto que su objetivo lo requiera ya que todo está disponible a través del código fuente. No es necesario que lo escriba desde cero y, por supuesto, si desea escribir su propio núcleo de sistema, programa de servidor o aplicación completa del sistema, definitivamente no lo detendré, pero espero que publique el código fuente cuando usted completa este conjunto de procedimientos.
Los anuncios pueden considerarse un entorno de soporte en lugar del SDK de desarrollo del sistema en sí.
-------------------------------
Ads aún no lo he usado, recuerdo que también tiene emuladores, depuradores y otros programas. En comparación con el entorno de desarrollo Linux, las funciones del entorno WinCE están más orientadas al hardware. Después de todo, los anuncios son un producto secundario y es poco probable que estén sesgados hacia el diseño del software. Linux y WinCE son sistemas, no herramientas de hardware.
Puedes pensar en un compilador cruzado como una aplicación, un exportador. Genera código fuente como código armado y la salida de la aplicación depende de su propio entorno, no del entorno del sistema actual.
El entorno del sistema actual es el entorno de trabajo del compilador cruzado.
La versión de cada software en el sistema actual no puede afectar el entorno de salida del compilador cruzado (en teoría, esto es cierto, pero en realidad, a veces siempre habrá un golpe de otra parte... ), Los compiladores cruzados generalmente tienen al menos bibliotecas gcc, binutils, glibc y archivos de encabezado del kernel de Linux.
En cuanto a requisitos de software.
Los archivos de encabezado no dependen de nadie. glibc solo necesita archivos de encabezado del kernel, y todos los demás programas dependen de glibc. En otras palabras, todos los programas no dependen del kernel, sino solo de los archivos de encabezado del kernel.
gcc y binutils toman el código fuente del programa y lo generan como un programa binario en el enlace anterior, dependiendo de la funcionalidad que cada enlace debe proporcionar. Sólo los programas gcc y binutils dependen de su entorno actual para su ejecución y control. Son los únicos programas que dependen de ellos, no su programa compilado de forma cruzada.
En cuanto a la elección de la versión del compilador, las versiones más nuevas tienen mejor funcionalidad, mientras que las versiones más antiguas tienen mejor compatibilidad.
Esto depende de tus necesidades reales. El código fuente de la aplicación también realiza ajustes en el compilador y también depende de la funcionalidad de las bibliotecas de software.
Se recomienda desarrollar para brazo, priorizando la estabilidad y compatibilidad. Por supuesto, también puede probar el entorno de compilación más reciente para una mejor optimización (siempre que haya optimizaciones de código).
Además, hay muchos productos de compra grupal en el sitio web de IDC, que son baratos y tienen buena reputación.