Ah of course! I am just used to doing

ADD_EXECUTABLE(Test1 Test1.cpp ${Sources})

So I guess I wasn't thinking and assumed it would be the same for
libraries, but now MyLibs is an actual "thing", not a list of files
like ${Sources} is.

Thanks guys.

David



On Wed, Feb 18, 2009 at 12:46 PM, Bill Hoffman <bill.hoff...@kitware.com> wrote:
> David Doria wrote:
>>
>> If I have many executables in the same project (ie same CMakeLists.txt
>> file), it seems like I shouldn't have to do this:
>>
>> set(Sources File1.cpp File1.cpp )
>>
>> ADD_EXECUTABLE(Test1 Test1.cpp ${Sources})
>>
>> ADD_EXECUTABLE(Test2 Test2.cpp ${Sources})
>>
>> because it is compiling File1 and File2 twice when that is unnecessary.
>>
>> So I tried to do this:
>>
>> ADD_LIBRARY(MyLibs ${Sources})
>>
>> ADD_EXECUTABLE(Test1 Test1.cpp)
>> TARGET_LINK_LIBRARIES(Test1 ${MyLibs})
>>
>> ADD_EXECUTABLE(Test2 Test2.cpp)
>> TARGET_LINK_LIBRARIES(Test2 ${MyLibs})
>>
>> But I get a whole bunch of linker errors - "Undefined reference to ..."
>>
>> Have I done something wrong / how would I do this?
>>
> This should fix your problem:
>
> TARGET_LINK_LIBRARIES(Test2 MyLibs)
>
> -Bill
>
_______________________________________________
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