[CMake] Problem with link directories

William A. Hoffman billlist at nycap.rr.com
Thu Mar 9 21:07:25 EST 2006


The LINK_DIRECTORIES has to be before the ADD_EXECUTABLE.
Another way to do it that should work for both version of cmake
is to use the full path to the library in target_link_libraries.

target_link_libraries(MyProject d:/dcmtk-3.5.3/dcmdata.lib)

The duplicate library stuff has been fixed in cvs CMake as well.

-Bill


At 06:48 PM 3/9/2006, jolinda wrote:
>Just to check, I've made the littlest cmakelists.txt file I can that shows
>the problem. Here it is in it's entirety: 
>
>PROJECT(MyProject)
>ADD_EXECUTABLE(MyProject WIN32 file2.cpp )
>LINK_DIRECTORIES( "d:/dcmtk-3.5.3" )
>TARGET_LINK_LIBRARIES(MyProject dcmdata.lib)
>
>If I build a project for Visual Studio 7 using CMake 1.8, I see the
>following under the debug Win32 configuration in MyProject.vcproj.cmake:
>
><Tool
>        Name="VCLinkerTool"
>        AdditionalOptions="/MACHINE:I386 /STACK:10000000 /machine:I386
>/INCREMENTAL:YES"
>        AdditionalDependencies=" odbc32.lib odbccp32.lib dcmdata.lib "
>        OutputFile="Debug\MyProject.exe"
>        LinkIncremental="1"
>        SuppressStartupBanner="TRUE"
>        
>AdditionalLibraryDirectories="d:\dcmtk-3.5.3\$(INTDIR),d:\dcmtk-3.5.3\"
>        ProgramDatabaseFile="$(OutDir)\MyProject.pdb"
>        GenerateDebugInformation="TRUE"
>        SubSystem="2"
>        StackReserveSize="10000000"/>
>
>
>If I try the same thing using CMake 2.2, I get this:
>
><Tool
>        Name="VCLinkerTool"
>        AdditionalOptions="/MACHINE:I386 /STACK:10000000 /machine:I386 "
>        AdditionalDependencies="kernel32.lib user32.lib gdi32.lib
>winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib
>uuid.lib odbc32.lib odbccp32.lib  kernel32.lib user32.lib gdi32.lib
>winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib
>uuid.lib odbc32.lib odbccp32.lib dcmdata.lib "
>        OutputFile="Debug\MyProject.exe"
>        LinkIncremental="2"
>        AdditionalLibraryDirectories=""
>        ProgramDatabaseFile="$(OutDir)\MyProject.pdb"
>        GenerateDebugInformation="TRUE"
>        SubSystem="2"
>        StackReserveSize="10000000"/>
>
>So, not only are my library directories not there, but there's an explosion
>of redundant dependencies.
>
>Jolinda
>
>-----Original Message-----
>From: cmake-bounces+jolinda=uoregon.edu at cmake.org
>[mailto:cmake-bounces+jolinda=uoregon.edu at cmake.org] On Behalf Of Brad King
>Sent: Thursday, March 09, 2006 6:34 AM
>To: jolinda at uoregon.edu
>Cc: cmake at www.cmake.org
>Subject: Re: [CMake] Problem with link directories
>
>
>jolinda wrote:
>> Hi,
>> 
>> I have a Visual Studio 7.0 project that was building fine using 
>> CMake-1.8 that won't build with version 2.2. I have a simple 
>> CMakeLists.txt file that includes things like:
>> 
>> LINK_DIRECTORIES( ${DCMTK_PATH}/dcmdata/libsrc
>>                   ${DCMTK_PATH}/dcmimage/libsrc )
>> 
>> When using version 1.8, these directories show up under 
>> "AdditionalLibraryDirectories" in the file Voxelator.vcproj.cmake. 
>> However, after using version 2.2, I see AdditionalLibraryDirectories = 
>> "".
>> 
>> Has something changed in the new version?
>
>Move the call to be before the targets that need it are added.
>
>-Brad
>_______________________________________________
>CMake mailing list
>CMake at cmake.org
>http://www.cmake.org/mailman/listinfo/cmake
>
>_______________________________________________
>CMake mailing list
>CMake at cmake.org
>http://www.cmake.org/mailman/listinfo/cmake 



More information about the CMake mailing list