On 01/16/2012 02:38 PM, [email protected] wrote:
> 
> I am new with kdevelop and cmake so apologize for this pretty naive question, 
> I 
> create in kdevelop a proj3 project and want to link a library so I create a 
> second project projA within the proj3 directory
> 
> the projA CMakelist is
> 
> project(proja)
> set( lib_SOURCES Execute_Msg.cpp )
> add_library(proja ${lib_SOURCES} )

If you want to get a shared library, you should state this explicitly:

ADD_LIBRARY(proja SHARED ${lib_SOURCES} )

Also see the BUILD_SHARED_LIBS variable.

> the proj3 CMakelist is
> 
> cmake_minimum_required(VERSION 2.8)
> project(proj3)
> link_directories(/pascal/pKD3/proj3/projA/build)

Never use LINK_DIRECTORIES(), it's unnecessary and dangerous. Instead,
you need ADD_SUBDIRECTORIES(projA) here to make projA known to proj3.

> add_executable(proj3 main.cpp)
> target_link_libraries(proj3 libproja)

In TARGET_LINK_LIBRARIES(), refer to targets to link against
by their *target names*, not by their *file names*, i.e.:

TARGET_LINK_LIBRARIES(proj3 proja)

> there is a libproja file in the /pascal/pKD3/proj3/projA/build directory, so 
> I 
> don't understand why I get the message /usr/bin/ld: cannot find -llibproja

This is because ld searches a quite restricted set of directories for
libraries specifed by -l; particularly, it doesn't search the current
directory. If you specify targets by their target names, CMake uses
full paths in the linker command lines, so there will be no issue.

> thanks for help

Regards,

Michael
--

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