I am attempting to build a shared library as a project. In order to explain my 
project I will use a pseudo project with a similar setup. The library is called 
TruckInterface with four directories (Wheels, Engine, Frame and Truck). The 
directories Wheels, Engine and Frame are built as static libraries and Truck is 
a shared library to be installed.
 
TruckInterface
  |------- Wheels
  |------- Engine
  |------- Frame
  |------- Truck
 
In the CMakeLists.txt for Wheels, Engine and Frame I have followed the format 
below:
 
  SET ( HEADERS ..list header files )
  SET ( SOURCES ...list source files )
 
  INCLUDE_DIRECTORIES ( ...other directory to look for headers in the 
project... )
 
  add_library ( <name> STATIC ${SOURCES} ${HEADERS} )
 
In the CMakeLists.txt for Truck I have
 
  SET ( HEADERS ..list header files )
  SET ( SOURCES ...list source files )
 
  INCLUDE_DIRECTORIES ( ...other directory to look for headers in the 
project... )
 
  add_library ( Truck SHARED ${SOURCES} ${HEADERS} )
  link_libraries ( Wheels Engine Frame )
 
Now my problems that I am coming across, some of which are not cmake's fault:
 
1. Undefined references even though the code has been declared for member 
functions
2. Unable to set global compiler flags in the CMakeLists in the TruckInterface 
directory
3. How to select when I want a debug versus a release build.
 
My experience is using Automake/Autoconf on Linux and Visual Studio on Windows.
 
I would appreciate help on points 2 and 3 but would like advice on how to debug 
point 1.
 
Stephen
 
_______________________________________________
Powered by www.kitware.com

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

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

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to