Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

704
Views
cmake: establecer variables de entorno desde un script

Tengo un script que establece todas las variables necesarias para la compilación cruzada. Aquí es sólo una parte de ella:

 export CONFIG_SITE=~/workspace/eldk-5.4/powerpc/site-config-powerpc-linux export CC="powerpc-linux-gcc -m32 -mhard-float --sysroot=~/workspace/eldk-5.4/powerpc/sysroots/powerpc-linux" export CXX="powerpc-linux-g++ -m32 -mhard-float --sysroot=~/workspace/eldk-5.4/powerpc/sysroots/powerpc-linux" export CPP="powerpc-linux-gcc -E -m32 -mhard-float --sysroot=~/workspace/eldk-5.4/powerpc/sysroots/powerpc-linux" export AS="powerpc-linux-as " export LD="powerpc-linux-ld --sysroot=~/workspace/eldk-5.4/powerpc/sysroots/powerpc-linux" export GDB=powerpc-linux-gdb

Si hago source environment-setup-powerpc-linux , todas las variables de entorno se importan a la sesión de shell actual y puedo compilar mi ejemplo.

¿Es posible importar estas variables en cmake? Si es así, ¿cómo?


Un poco más de detalles:

  1. Estoy usando ELDK v 5.4 , y su secuencia de comandos de instalación genera una secuencia de comandos que establece todas las variables de entorno
  2. Encontré este tutorial , que explica cómo configurar manualmente la compilación cruzada, pero no cómo usar el script, que configura todo
  3. si llamo al script antes de configurar cmake, todo funciona bien y puedo realizar una compilación cruzada, pero me gustaría que cmake llame al script
over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Al leer el inicio rápido de cmake , puede especificar una variable en una línea de comando:

 cmake -DVARIABLE1=value1 -DVARIABLE2=value2 ...

De lo contrario, set el comando en el script cmake es probablemente lo que desea, consulte el manual de referencia . Para configurar la variable de entorno PATH, haz lo siguiente:

 set(ENV{PATH} "/home/martink")

Para establecer la variable normal, haga:

 set(variable "value")

No estoy seguro de cuáles tiene que configurar, probablemente los del entorno.

Dicho esto, establecer la variable de entorno antes de llamar a cmake suele ser la solución más fácil para resolver el problema, como en este caso: https://stackoverflow.com/a/15053460/684229

over 4 years ago · Santiago Trujillo Report

0

La única forma de configurar un compilador y marcas para realizar una compilación cruzada de manera confiable con CMake es con un archivo de cadena de herramientas como se hizo en el tutorial que encontró.

Cuando enfrentamos el mismo problema que usted tiene (un conjunto de herramientas que produce una secuencia de comandos, así que configure el entorno de compilación), cambiamos el conjunto de herramientas de manera que produzca un archivo de cadena de herramientas junto con la secuencia de comandos.

En realidad, un archivo cmake-toolchain-file no cambia tan a menudo. Las banderas básicas utilizadas para el objetivo se fijan bastante temprano en un proyecto, normalmente. Y con CMAKE_BUILD_TYPE de CMake, puede alternar entre las compilaciones Debug y Release sin cambiar el archivo de la cadena de herramientas.

Si tiene diferentes objetivos para admitir, cree una cadena de herramientas diferente y use la compilación fuera de la fuente con CMake.

EDITAR : una cosa que podría hacer es invocar cmake con el argumento -D configurando las variables que desea y habiendo obtenido su secuencia de comandos antes:

 source environment-setup-powerpc-linux cmake -DCMAKE_C_COMPILER=$CC -DCMAKE_CXX_COMPILER=$CXX etc

El resultado será idéntico a haber utilizado un archivo de cadena de herramientas.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!