CMake添加外部依赖项

时间:2016-01-20 22:08:11

标签: c++ visual-studio cmake shared-libraries

我正在尝试将我已经使用的Visual Studio 2013项目转换为使用CMake,但是当我包含使用某些共享库的源头文件时,我遇到了问题。在Common Properties>下的原始VS项目属性中参考资料我在项目中添加了一些我需要的参考资料。有一些选项,如库的相对路径,一些构建设置等等。我的VS项目文件中生成的XML看起来非常类似于以下内容:

<Project>
.
.
.
  <ItemGroup>
    <Reference Include="MyLib">
      <HintPath>../lib/MyLib.dll</HintPath>
    </Reference>
    <Reference Include="System">
      <CopyLocalSatelliteAssemblies>true</CopyLocalSatelliteAssemblies>
      <ReferenceOutputAssembly>true</ReferenceOutputAssembly>
    </Reference>
    .
    .
    .
  </ItemGroup>

基本上我希望能够使用'MyLib.dll','System'和我的其他参考文献,但我不知道如何通过CMake包含它们。

我做了一些谷歌搜索,发现了这个:CMake link to external library,但这似乎不起作用。任何想法我需要使用什么命令来使用共享库?

编辑:

我当前的CMakeLists.txt文件的最小版本

cmake_minimum_required(VERSION 3.0.2)
project(MyProject)
set(EXE_NAME "MyExe")

set(SOURCES
    "src/main.cpp"
    "src/SourceUsingDLL.cpp"
    "src/others.cpp"
)

set(HEADERS
    "include/HeaderUsingDLL.h"
    "include/otherHeaders.h"
)

include_directories(include)

add_executable(${EXE_NAME} ${SOURCES} ${HEADERS})

### What I tried - Didn't work ####
add_library( mylib SHARED IMPORTED )
set_target_properties( mylib PROPERTIES IMPORTED_LOCATION pathToDLL )
target_link_libraries(${EXE_NAME} mylib)

对于dll路径,我使用了本地dll的相对和绝对路径,但是我不知道我将为系统引用做什么。

0 个答案:

没有答案