[LLVMdev] Linking to the LLVM shared library

Óscar Fuentes ofv at wanadoo.es
Sun Aug 22 06:09:14 PDT 2010

nobled <nobled at dreamwidth.org> writes:

>>> The LLVM 2.7 release notes say you can use ./configure --enable-shared
>>> to build LLVM as a shared library (libLLVM2.7.so), and the LLVM tools
>>> will link against that instead of including the static libraries, so I
>>> was wondering:
>>> Is there a way to configure LLVM the same way using CMake (so it can
>>> work on Windows)?
>> There is no way right now. It could be easily implemented for MinGW, but
>> not for MSVC. The binutils included with MinGW do not require
>> __declspec(dllexport/dllimport) for exporting/importing symbols on dlls.
>> [snip]
> Okay, but in the *general* case, how do I configure LLVM that way with
> CMake (not necessarily on Windows)? running `cmake -i` never gives any
> option that looks like "compile a shared library". Do the ./configure
> and cmake ways of compiling not have parity, options-wise?

No options-wise. Maybe some functionality-wise.

On cmake, when you want to generate shared libraries, you pass
-DBUILD_SHARED_LIBS That's a general cmake option, i.e. it should work
on all projects that use cmake (as far as they make sense for each
specific project.)

AFAIK, the `configure&make' build had so-so support for shared
libraries. Maybe that is fixed now. What they implemented recently was
one option for generating a single shared library containing all LLVM.

More information about the llvm-dev mailing list