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.

Reply via email to