cómo construir el IDE mixto

¿alguien sabe cómo construir el IDE mixto? No encontré información sobre esto en el LÉAME o en otro lugar. Cuando intento construir el maestro a través de cmake, obtengo:

 ➜  3rd cmake mix          
-- The C compiler identification is GNU 5.3.1
-- The CXX compiler identification is GNU 5.3.1
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Error at CMakeLists.txt:23 (include):
  include could not find load file:

    EthDependencies


CMake Error at CMakeLists.txt:24 (include):
  include could not find load file:

    EthExecutableHelper


CMake Error at CMakeLists.txt:25 (include):
  include could not find load file:

    EthCompilerSettings


SRC_LIST: ./src/QFunctionDefinition.cpp;./src/QContractDefinition.cpp;./src/Exceptions.cpp;./src/MixApplication.cpp;./src/QVariableDeclaration.cpp;./src/ClientModel.cpp;./src/QEther.cpp;./src/InverseMouseArea.cpp;./src/QVariableDefinition.cpp;./src/HttpServer.cpp;./src/main.cpp;./src/DebuggingStateWrapper.cpp;./src/FileIo.cpp;./src/QBigInt.cpp;./src/CodeModel.cpp;./src/MixClient.cpp;./src/QBasicNodeDefinition.cpp;./src/Clipboard.cpp;./src/SortFilterProxyModel.cpp;./src/CodeHighlighter.cpp;./src/Web3Server.cpp;./src/ContractCallDataEncoder.cpp
CMake Warning at CMakeLists.txt:50 (find_package):
  By not providing "FindEth.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "Eth", but
  CMake did not find one.

  Could not find a package configuration file provided by "Eth" with any of
  the following names:

    EthConfig.cmake
    eth-config.cmake

  Add the installation prefix of "Eth" to CMAKE_PREFIX_PATH or set "Eth_DIR"
  to a directory containing one of the above files.  If "Eth" provides a
  separate development package or SDK, be sure it has been installed.


CMake Warning at CMakeLists.txt:51 (find_package):
  By not providing "FindQt5Core.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "Qt5Core", but
  CMake did not find one.

  Could not find a package configuration file provided by "Qt5Core" with any
  of the following names:

    Qt5CoreConfig.cmake
    qt5core-config.cmake

  Add the installation prefix of "Qt5Core" to CMAKE_PREFIX_PATH or set
  "Qt5Core_DIR" to a directory containing one of the above files.  If
  "Qt5Core" provides a separate development package or SDK, be sure it has
  been installed.


CMake Warning at CMakeLists.txt:52 (find_package):
  By not providing "FindQt5WebEngine.cmake" in CMAKE_MODULE_PATH this project
  has asked CMake to find a package configuration file provided by
  "Qt5WebEngine", but CMake did not find one.

  Could not find a package configuration file provided by "Qt5WebEngine" with
  any of the following names:

    Qt5WebEngineConfig.cmake
    qt5webengine-config.cmake

  Add the installation prefix of "Qt5WebEngine" to CMAKE_PREFIX_PATH or set
  "Qt5WebEngine_DIR" to a directory containing one of the above files.  If
  "Qt5WebEngine" provides a separate development package or SDK, be sure it
  has been installed.


CMake Error at CMakeLists.txt:59 (qt5_add_resources):
  Unknown CMake command "qt5_add_resources".


-- Configuring incomplete, errors occurred!
See also "/home/ligi/git/3rd/CMakeFiles/CMakeOutput.log".

al construir desarrollar:

➜  3rd cmake mix
CMake Error at CMakeLists.txt:8 (include):
  include could not find load file:

    EthPolicy


CMake Error at CMakeLists.txt:9 (eth_policy):
  Unknown CMake command "eth_policy".


-- Configuring incomplete, errors occurred!
See also "/home/ligi/git/3rd/CMakeFiles/CMakeOutput.log".
En general tienes que compilar todo el webthree-umbrella . las dependencias individuales no se compilan por sí solas (todavía), ¿en qué sistema estás? Ubuntu ?
sí ubuntu - pero 16.04

Respuestas (2)

Actualmente, el proceso de compilación no permite crear subconjuntos del paraguas webthree. Para compilar mixtendrás que compilar todo el conjunto:

git clone https://github.com/ethereum/webthree-umbrella/
cd webthree-umbrella/
mkdir build/
cd build/
cmake ..
make -j $(nproc)

El binario mixto estará disponible en formato build/mix/mix.

gracias, pero me falla con: Error de CMake en libethereum/evmjit/CMakeLists.txt:29 (llvm_map_components_to_libnames): comando CMake desconocido "llvm_map_components_to_libnames".

Le faltan algunas dependencias, al menos las bibliotecas qt, consulte a continuación. La mezcla no se puede construir por sí sola, necesita más bloques de construcción antes.

Esta imagen muestra bastante bien las dependencias de Mix:

dependencias

Al igual que usted, al principio intenté compilar solo mix y, de hecho, es más sencillo compilar todo el material de cpp, Mix estará en él. Las instrucciones se encuentran aquí. Se reduce a :

  • instale las dependencias con su administrador de paquetes ( sudo apt-get installo sudo aptitude install), en Ubuntu estas son:

build-essential git cmake libboost-all-dev libgmp-dev libleveldb-dev libminiupnpc-dev libreadline-dev libncurses5-dev libcurl4-openssl-dev libcryptopp-dev libmicrohttpd-dev libjsoncpp-dev libargtable2-dev libedit-dev mesa-common-dev ocl-icd-libopencl1 opencl-headers libgoogle-perftools-dev qtbase5-dev qt5-default qtdeclarative5-dev libqt5webkit5-dev libqt5webengine5-dev ocl-icd-dev libv8-dev libz-dev libjsonrpccpp-dev qml-module-qtquick-controls qml-module-qtwebengine

  • si no está en Ubuntu, es posible que tenga problemas con libqt5webengine5-dev y libcryptopp-dev que, según la distribución, no se envían exactamente de la manera que el compilador desea. Puedo agregar algo sobre eso si lo necesita, compilé con éxito todo en Debian que carece de ambas bibliotecas.

Entonces, en Debian no obtiene libqt5webengine5-dev. La forma en que solucioné esos 2 problemas de dependencias fue la siguiente:

  1. descargue Qt 5.4 (la versión es importante) en el sitio web , le hacen algunas preguntas. Personalmente lo instalé en mi directorio de inicio (/home/TUUSUARIO)
  2. Ahora tendrás que decirle a cmake cómo encontrar esa biblioteca: yo usécmake .. -DCMAKE_PREFIX_PATH=/home/YOURUSER/Qt/5.4/gcc_64

En consecuencia, si no obtiene la versión correcta de libcrytopp, deberá compilarla usted mismo.

  1. wget http://cryptopp.com/cryptopp562.zip
  2. unzip cryptopp562.zip -d cryptopp
  3. si make libcryptopp.a libcryptopp.so cryptest.exeen el directorio cryptopp falla, es posible que deba editar GNUmakefile y descomentarCXXFLAGS += -fPIC
  4. sudo make install

    • Clone el repositorio, recursivamente :) y verifique el lanzamiento que desea:

    git clone --recursive https://github.com/ethereum/webthree-umbrella.gitdespuésgit checkout XXXX

    • ¡Cree el directorio de compilación, muévase en él y cmake!mkdir -p build && cd build && cmake ..

Si tu cmake no pasa todas las pruebas, puedes comentar e intentaré decirte lo que falta :)

¡Gracias! ¿Puede dar más detalles sobre libqt5webengine5-dev y libcryptopp-dev? Recibo: E: No se puede ubicar el paquete libcryptopp-dev E: No se puede ubicar el paquete libqt5webengine5-dev E: No se puede ubicar el paquete qml-module-qtwebengine
Edité mi respuesta con instrucciones específicas para Debian relacionadas con las dependencias que faltan, espero que ayude. Qué distro está usando ?
gracias, sigo instalando esta bestia qt, esto lleva mucho tiempo ;-)
todavía tengo un problema: gist.github.com/ligi/44808751f5c013cd2fe3 - ¿Tengo que configurar todas estas variables a mano?
no, te faltan las dependencias eth, mira el gráfico que puse, no puedes compilar mix solo, necesita Qt (aparentemente lo resolviste) y web3jsonrpc que a su vez necesita webthree que necesita susurro, etc etc.... así que mejor compila todo
ligi, prueba cmake . -DCMAKE_PREFIX_PATH=/home/ligi/bin/qt/5.4/gcc_64sin mezclar
La compilación de todo me llevó más lejos, pero falla con un error de CMake en libethereum/evmjit/CMakeLists.txt:29 (llvm_map_components_to_libnames): Comando CMake desconocido "llvm_map_components_to_libnames". construir software (java) todos los días, y pasar por este lodo ahora realmente me permite apreciar cómo gradle+maven-central simplemente automatiza esta fea tarea de obtener las dependencias correctamente.
pareces extrañar llvm-3.7-dev
@ euri10 ¿Qué usaste para crear el diagrama?
No lo creé, solo lo tomé de una wiki antigua en el antiguo repositorio de ethereum de cpp, no puedo recordar dónde ahora lo siento