Hello!
I hope someone could finally help me. I spent about two days to find solution 
for my problem, but with no luck.

Here is my problem:

I want to create a shared library (dll on Windows, .so on Linux, .dylib on OS 
X) that contains some functions. This library should export only these 
functions and nothing else. I guarantee that these function are pure C 
functions, so no C++ STL is needed to call them.

Then I want to create an application that call functions from the shared 
library mentioned above. I mean that the application should not have these 
functions inside. I want OS linker to link the application with the library at 
runtime, when it initializes the application. I know, how to do this on Windows 
with Visual Studio: create DLL project, write functions and compile, then there 
will be two files: .dll and .lib, link the .lib file with the application and 
at runtime Windows will find the .dll. But how can I do so with CMake?

Here is my CMakeLists.txt:

cmake_minimum_required(VERSION 3.3)
project(untitled19)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

set(LIBRARY_SRC library.cpp)

add_library(libra SHARED ${LIBRARY_SRC})

set(SOURCE_FILES main.cpp)
add_executable(untitled19 ${SOURCE_FILES})
target_link_libraries(untitled19 libra)

This works and both library and executable are compiled. Unfortunately library 
seems to be linked into the executable: ‘nm’ command shows that the executable 
itself exports needed functions!
I think there should be a solution for this, but I cannot find it. Can anyone 
help me?
For more clarification: I’m using OS X El Capitan.
——
Best regards, Ivan.


-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake

Reply via email to