我正在尝试将我已经使用的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的相对和绝对路径,但是我不知道我将为系统引用做什么。