I've found lots of info for Dawn 3.0, but there's a note in the 1.1.0 release notes that acknowledges that the EOS Developer Portal tutorials (token, exchange, helloWorld) don't work and need updating, but that doesn't help me to learn how to write EOS Contracts now, and I've been unable to find current info that works.

I've tried both the docker approach (recommended in the tutorial) as well as the build-the-whole-thing-from-source approach. The docker approach required a few things to be tweaked that I did figure out (mainly removing references to the "build" folder), but then both approaches eventually lead to the following error, which I believe is just an include path not being included, but I can't figure out how to include it.

After compiling eosio source, running all tests successfully, and then running sudo make install, when I try to compile the hello sample contract,

$ cd <root of cloned github repo>/contracts/hello

$ /usr/local/eosio/bin/eosiocpp -o hello.wast hello.cpp

I get the following

hello.cpp:1:10: fatal error: 'eosiolib/eosio.hpp' file not found #include <eosiolib/eosio.hpp> ^~~~~~~~~~~~~~~~~~~~ 1 error generated.

I have monkeyed around every way I can think of with include paths and path references, but I can't come up with a way to get this to work that isn't contract specific, ie. I don't want to mod this so that paths are all customized to this location...

Any ideas?

Bonus question: Can anyone provide a simple way to do this compilation using the suggested docker container-ized nodeos/keosd solution referenced in the tutorials?

  • Did u run sudo make install inside build folder? – Rajat Chaudhary Aug 8 at 7:32
  • @RajatChaudhary Yes, I did run sudo make install as it says in my post (and I did that in the build folder). That doesn't solve the problem. – Mike Aug 8 at 14:56
  • I got contracts to compile. EOSIO has this on their radar, but until this is fixed for real by people who know what they're doing, I put together a kludge that at least gets the tutorial working. Solution here: github.com/mikefreemen/eos/tree/master/fixBuildFor1.1.4 – Mike Aug 8 at 20:19

I had this as a comment, but as I work more myself, I'm realizing that this is as good as it's going to get for now, and my comment is really easy to miss...

I got contracts to compile. Block.one has this on their radar, but until this is fixed for real by people who know what they're doing, I put together a kludge that at least gets the tutorial working.

TL;DR: The compiler and linker are looking in certain places for the needed files, but those files are not where they expect them. There's a mod needed to the eosiocpp script as well as moving the needed files in the location that the compiler expects.

I've written a script for the compiler part, and explained what's needed for linking, both in this blog post

The script (as linked in the article) is available via my github repo: github.com/mikefreemen/eos/tree/master/fixBuildFor1.1.4

NOTE: This does not fix the Docker setup, only the build-from-source setup.

EDIT: I've applied the same type of fix to the Docker container. Write up is here - NOTE: fixing Docker requires building from source, so it's up to you whether you think that's worth the time...

  • Thank you. It really helps. I voted for your question and answer. – smarteasy Aug 11 at 9:00

You have to run sudo make install in the <root of cloned github repo>/build directory.

Your Answer

 
discard

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.