¿Cómo compilar C++ Ethereum sin GUI/Qt?

Quiero tener una instalación limpia de los clientes turbo ethereum C++ y las herramientas de línea de comandos sin ninguna dependencia de GUI (Qt, etc.) - ¿Cómo compilar C++ Ethereum sin GUI/Qt?

Veo que AlethZero y AlethOne los están incorporando, pero ¿cómo puedo decirle al proceso de compilación que excluya todas las aplicaciones GUI?

¿Hay alguna forma de configurar cmakepara crear solo herramientas CLI o algún makeobjetivo específico que deba conocer?

Respuestas (3)

en tu carpeta de compilacióncmake .. -DGUI=0

Así que hay dos fases. CMake genera archivos MAKE (o soluciones de Visual Studio o proyectos xcode), y luego los crea con make, o MSBuild, etc.

Durante la fase de CMake, puede pasar parámetros para excluir aplicaciones particulares del proceso de compilación. Estas son las propiedades principales: HERRAMIENTA, PRUEBA, GUI, EVMJIT, que estarán "activadas" de forma predeterminada, pero se pueden desactivar. Por ejemplo, excluir EVMJIT significa que no necesita tener instalado LLVM (pero solo obtendrá el intérprete, no el JIT). Excluir la GUI significa que no obtendrá AlethZero o Mix, pero también significa que no necesita instalar Qt5.

Luego, cuando llegue a la fase de fabricación, hacer una "fabricación" no calificada construirá todo. También puede "hacer la instalación". También puede construir solo aplicaciones específicas, es decir. "hacer eth", "hacer ethminer", "hacer mezcla".

Aquí hay un gran diagrama de todos los módulos:

http://doublethinkco.github.io/cpp-ethereum-cross/images/dependency_graph.svg

Y el diagrama objetivo de cómo se verá después de que terminemos la reorganización del repositorio pendiente ( https://github.com/ethereum/webthree-umbrella/issues/251 ), que se está ejecutando en seco en https://github.com /bobsummerwill/cpp-ethereum/tree/merge_repos ahora mismo):

http://doublethinkco.github.io/cpp-ethereum-cross/images/target_dependency_graph.svg

Depende de cómo lo estés instalando. En OS X ejecutarías

brew install cpp-ethereum

porque por defecto viene sin esos.

Ahora, si quisieras hacer eso en Ubuntu, probablemente harías algo como esto:

git clone --recursive https://github.com/ethereum/webthree-umbrella.git
cd webtree-umbrella
./webthree-helpers/scripts/ethupdate.sh --no-push --simple-pull --project webthree
./webthree-helpers/scripts/ethbuild.sh --no-git --project webthree

Recomiendo encarecidamente cambiar el indicador --core; de ​​lo contrario, estará esperando para siempre.

Interesante, no estaba al tanto de los scipts de ayuda. el brew installno tira en mix y alethzero?
Debe ejecutarlo con las banderas --with-guipara atraerlas.