Hi, as Nadav said it might be best to use Capstan from MIKELANGELO repository <https://github.com/mikelangelo-project/capstan>. The Capstan that is there is under active development and contains much more recent OSv base image (we've last compiled it 2 weeks ago or so). The Capstan there works so that it always uses same basic OSv image (it downloads it from the repository) and uploads all the files from your current directory to it. The way you would use it in your case is:
1. compile your C++ application and copy the result (one or more `.so` files and possible other files) into a new folder "mypackage" 2. add the two configuration files meta/package.yaml and meta/run.yaml into "mypackage" folder (consult README for details, should be fairly simple) 3. use command `capstan package compose <unikernel_name>` - a new unikernel will be composed with your application files 4. use command `capstan run <unikernel_name>` - the unikernel will be run For details and a step-by-step guide please see README at the Capstan GithubRepository. Dne nedelja, 23. april 2017 12.41.51 UTC+2 je oseba Niels Bergsma napisala: > > Hi all, > > I've been trying to build simple C++ apps for the past few weeks on OSV. I > frequently receive "failed looking up symbol" errors and I can't figure out > how to solve them properly. Simple programs like HelloWorld or variants > which include simple shared library work correctly, but more sophisticated > libraries like leveldb, restbed report errors at runtime. Even when I > manual compile those libraries and link the object files with my own code. > > The error I receive look like: > OSv v0.24 > eth0: 192.168.122.15 > /tools/example.so: failed looking up symbol > _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_ > (std::__cxx11::basic_string<char, std::char_traits<char>, > std::allocator<char> >::basic_string(char const*, std::allocator<char> > const&)) > > [backtrace] > 0x00000000003447cd <elf::object::symbol(unsigned int)+205> > 0x0000000000346148 <elf::object::resolve_pltgot(unsigned int)+136> > 0x0000000000346325 <elf_resolve_pltgot+69> > 0x0000000000391e64 <???+3743332> > 0x00000000004c12df <???+4985567> > 0x000010000584cd54 <main+84> > 0x0000000000421153 <osv::application::run_main(std::string, int, > char**)+371> > 0x0000000000423220 <osv::application::run_main()+624> > 0x000000000020ce43 <osv::application::main()+83> > 0x0000000000423588 <???+4339080> > 0x000000000044d465 <???+4510821> > 0x00000000003f10c7 <thread_main_c+39> > 0x00000000003931b5 <???+3748277> > > My capstan file looks like is: > base: cloudius/osv-base > cmdline: /tools/example.so > build: make > files: > /tools/example.so: example.so > > > What am I doing wrong? > > Thanks! > > Niels > -- You received this message because you are subscribed to the Google Groups "OSv Development" group. To unsubscribe from this group and stop receiving emails from it, send an email to osv-dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.