Skip to content
garyo edited this page Dec 13, 2014 · 1 revision

This page explains how to correctly create symbolic links.

Creating symbolic links is required when you create a shared library. You'll need to set up a link from the soname to the real name.

Assume the files in your project are

  • some_code.c
  • sconstruct
  • backend/some_code.c
  • backend/sconstruct Assume somehow you have built backend/liba.so.0.0.1. Then you wish to create two soft links in directory backend, named liba.so.0 pointing to liba.so.0.0.1, and liba.so pointing to liba.so.0.0.1. For some reason (e.g., different compiling option between the folders), you use sconstruct and backend\sconstruct separately to compile different folders.

Here is a solution.

In sconstruct:

  • env.SConscript('backend/sconstruct') In backend/sconstruct:

  • env.Command('liba.so', 'liba.so.0.0.1', 'ln -s ${SOURCE.file} $TARGET')

  • env.Command('liba.so.0', 'liba.so.0.0.1', 'ln -s ${SOURCE.file} $TARGET')

Clone this wiki locally