[CMake] TARGET_LINK_LIBRARIES got a link error
Lloyd
lloydkl.tech at gmail.com
Fri Apr 12 04:22:41 EDT 2013
Thanks Jc and Eike, it solved my problem
On Fri, Apr 12, 2013 at 12:31 PM, Jean-Christophe Fillion-Robin <
jchris.fillionr at kitware.com> wrote:
> Hi Lloyd,
>
> Seems you have a small typo, target name case should be consistent.
>
> Try to use:
>
> TARGET_LINK_LIBRARIES(Tutorial Reverse)
>
> instead of
>
> TARGET_LINK_LIBRARIES(Tutorial reverse)
>
> Hth
> Jc
>
>
> On Fri, Apr 12, 2013 at 2:48 AM, Lloyd <lloydkl.tech at gmail.com> wrote:
>
>>
>>
>>
>> On Fri, Apr 12, 2013 at 11:58 AM, Rolf Eike Beer <eike at sf-mail.de> wrote:
>>
>>> Lloyd wrote:
>>> > Hi,
>>> >
>>> > I am new to Cmake and at present exploring its features for migrating
>>> our
>>> > projects build system to use it.
>>> >
>>> > I have main source folder inside that another folder contains the
>>> source
>>> > for our custom library.
>>> >
>>> > I understand that the problem is with my cmake file. Through that the
>>> > generated project cannot locate the location of my library build
>>> location.
>>> > What is the right way to solve this kind of problem?
>>> >
>>> > Thanks,
>>> > Lloyd
>>> >
>>> > As a sample I am including my Cmake code
>>> >
>>> > #Cmake file of library source code
>>> > #Path-> Myproject/src/lib/reverse
>>> >
>>> > cmake_minimum_required (VERSION 2.6)
>>> >
>>> > if(WIN32)
>>> > SET (REV_SRC reverse.cpp reverse.h)
>>> > else(WIN32)
>>> > SET (REV_SRC reverse.cpp)
>>> > endif(WIN32)
>>>
>>> There is no reason for this. CMake knows that it does not have to compile
>>> header files, so it wont add compile rules for them e.g. in Makefiles.
>>> Just
>>> always add them to the project, this has some additional benefits for
>>> generated headers and the like.
>>>
>>
>>
>> You mean the "if(WIN32)" clause and the addition of "reverse.h" in SET
>> (REV_SRC reverse.cpp reverse.h)? Otherwise I think visual studio projects
>> wont add the header file to the solution's source file hierarchy.
>>
>>
>>
>>>
>>> > ADD_DEFINITIONS(-DREVERSE_EXPORTS)
>>> >
>>> > ADD_LIBRARY(Reverse SHARED ${REV_SRC})
>>> >
>>> >
>>> >
>>> > This is my CMake file inside the Src folder
>>> >
>>> > #Cmake file of main source code
>>> > #Path-> Myproject/src/
>>> > cmake_minimum_required (VERSION 2.6)
>>> >
>>> > FIND_PACKAGE(Qt4 REQUIRED)
>>> > INCLUDE(${QT_USE_FILE})
>>> > INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/lib/reverse)
>>> >
>>> > ADD_SUBDIRECTORY(lib/reverse)
>>> >
>>> > ADD_EXECUTABLE(Tutorial main.cpp)
>>> >
>>> > TARGET_LINK_LIBRARIES(Tutorial ${QT_LIBRARIES})
>>> > #############################################################
>>> > #I understand that the problem is here, because it cant locate my
>>> library.
>>> > TARGET_LINK_LIBRARIES(Tutorial reverse)
>>> > #############################################################
>>>
>>> You just need to make sure that it goes into the lib folder first, before
>>> going into src. So the top level CMakeLists.txt should have
>>>
>>> add_subdirectory(lib)
>>> # or lib/reverse above, depending if you have something in lib/
>>> add_subdirectory(src)
>>>
>>
>> I tried in the way you have mentioned, but the error persists (fatal
>> error LNK1104: cannot open file 'reverse.lib') . I have also removed the
>> entry for adding subdirectory (the lib/reverse) in my src folder's cmake
>> file ( ADD_SUBDIRECTORY(lib/reverse)). The following is my main cmake file
>>
>> #Root cmake file
>> cmake_minimum_required (VERSION 2.6)
>> PROJECT (Tutorial)
>>
>> ADD_SUBDIRECTORY(src/lib/reverse)
>> ADD_SUBDIRECTORY(src)
>>
>> SET (DO_TEST false CACHE BOOL "Enable Testing?")
>> if(DO_TEST)
>> ENABLE_TESTING()
>> ADD_SUBDIRECTORY(tests)
>> endif(DO_TEST)
>>
>>
>> Thank you very much,
>> Lloyd
>>
>>
>>>
>>> Eike
>>> --
>>>
>>> --
>>>
>>> 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
>>>
>>
>>
>> --
>>
>> 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
>>
>
>
>
> --
> +1 919 869 8849
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20130412/12337ae4/attachment.htm>
More information about the CMake
mailing list