# C/C++ interop workshop

**URL:** <https://discourse.julialang.org/t/c-c-interop-workshop/34936>\
**Category:** 2020\
**Created:** [February 20, 2020, 10:01pm UTC](https://discourse.julialang.org/t/c-c-interop-workshop/34936 "2020-02-20T22:01:34Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![barche](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/barche/32/79_2.png) [@barche](https://discourse.julialang.org/u/barche)\
**Post date:** [February 20, 2020, 10:01pm UTC](https://discourse.julialang.org/t/c-c-interop-workshop/34936/1 "2020-02-20T22:01:34Z")

</div>

Hi all,

I saw an announcement on Twitter that workshop proposals were still wanted for JuliaCon. Given the many recent changes to [CxxWrap.jl](https://github.com/JuliaInterop/CxxWrap.jl) I was thinking of proposing a workshop on how to “wrap” a C++ library for use in Julia, in the form of a tutorial where we go through the process completeley up to and including building a jll for distribution.

As @avik pointed out on Slack, it may be a good idea to combine it with other C/C++ tools, such as basic `ccall` use, clang.jl and maybe also Cxx.jl. So, the questions now:

- Is there enough interest in these topics to justify having a workshop?
- Is anyone interested in helping to organise this? (@Keno @Gnimuc ?)

---

<div class="post-metadata">

**Author:** ![vjhaanpaa](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/vjhaanpaa/32/12982_2.png) [@vjhaanpaa](https://discourse.julialang.org/u/vjhaanpaa)\
**Post date:** [February 21, 2020, 8:22am UTC](https://discourse.julialang.org/t/c-c-interop-workshop/34936/2 "2020-02-21T08:22:46Z")

</div>

Hi, at least I personally would be interested in a workshop around C/C++ at JuliaCon, if one will be organised!

---

<div class="post-metadata">

**Author:** ![giordano](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/giordano/32/2166_2.png) [@giordano](https://discourse.julialang.org/u/giordano)\
**Post date:** [February 21, 2020, 8:26am UTC](https://discourse.julialang.org/t/c-c-interop-workshop/34936/3 "2020-02-21T08:26:04Z")

</div>

> [@barche](#):
>
> including building a jll for distribution

For the record, @staticfloat and I submitted a proposal for a BinaryBuilder workshop

---

<div class="post-metadata">

**Author:** ![nblomberg](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/nblomberg/32/13604_2.png) [@nblomberg](https://discourse.julialang.org/u/nblomberg)\
**Post date:** [February 21, 2020, 8:37am UTC](https://discourse.julialang.org/t/c-c-interop-workshop/34936/4 "2020-02-21T08:37:13Z")

</div>

I would also like to attend this kind of workshop! Hopefully it can be arranged.

---

<div class="post-metadata">

**Author:** ![barche](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/barche/32/79_2.png) [@barche](https://discourse.julialang.org/u/barche)\
**Post date:** [February 21, 2020, 12:01pm UTC](https://discourse.julialang.org/t/c-c-interop-workshop/34936/5 "2020-02-21T12:01:30Z")

</div>

> [@barche](#):
>
> For the record, @staticfloat and I submitted a proposal for a BinaryBuilder workshop

Great! Of course I don’t intend to do an extensive overview of BinaryBuilder, but just focus on the special steps that are necessary for CxxWrap right now, such as downloading and unpacking Julia itself, and how to use an Overrides.toml to facilitate local development.

---

<div class="post-metadata">

**Author:** ![freeman](https://avatars.discourse-cdn.com/v4/letter/f/ec9cab/32.png) [@freeman](https://discourse.julialang.org/u/freeman)\
**Post date:** [June 25, 2020, 4:56pm UTC](https://discourse.julialang.org/t/c-c-interop-workshop/34936/6 "2020-06-25T16:56:29Z")

</div>

Is this happening? Either CxxWrap.jl or any other C++ interop workshop?

---

<div class="post-metadata">

**Author:** ![barche](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/barche/32/79_2.png) [@barche](https://discourse.julialang.org/u/barche)\
**Post date:** [June 29, 2020, 7:03am UTC](https://discourse.julialang.org/t/c-c-interop-workshop/34936/7 "2020-06-29T07:03:34Z")

</div>

Yep, looks like it is happening 😉

[https://pretalx.com/juliacon2020/schedule/#2020-07-26](https://pretalx.com/juliacon2020/schedule/#2020-07-26)

---

<div class="post-metadata">

**Author:** ![barche](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/barche/32/79_2.png) [@barche](https://discourse.julialang.org/u/barche)\
**Post date:** [July 22, 2020, 10:54pm UTC](https://discourse.julialang.org/t/c-c-interop-workshop/34936/8 "2020-07-22T22:54:47Z")

</div>

Some updates:

- I could use some assistance for answering questions during the session, feel free to respond at the Github issue: [https://github.com/JuliaInterop/CxxWrap.jl/issues/261](https://github.com/JuliaInterop/CxxWrap.jl/issues/261)
- Tutorial files and instructions on how to set up your environment will appear here: [https://github.com/barche/cxxwrap-juliacon2020](https://github.com/barche/cxxwrap-juliacon2020)

If you want to compile and develop natively on your own machine, it’s probably best to set everything up (including compiled libcxxwrap-julia) before the start of the workshop for maximum efficiency.

Possible alternatives are Docker or BinaryBuilder, but I still need to experiment with those myself. I’ll try to add instructions for that by Saturday at the latest.
