CMake并更正添加共享库

时间:2015-12-10 19:22:47

标签: c++11 cmake shared-libraries

我正在尝试使用CMake将共享库添加到我的项目中。对于C ++ 11,库是MsgPack。我必须做错事,因为没有一个例子here编译。我收到这个错误:

  

错误:'operator<<'不匹配(操作数类型为   'MsgPack :: Serializer'和'std :: unique_ptr')   串行器<< MsgPack__Factory(阵列(标准::移动(arrayWith3Elements)));

我的猜测是它与我的CMake语法有关。我保留编译库的文件系统树如下所示:

/home/I/direcytory/MsgPack/
├── include
│   ├── Container.h
│   ├── ContainerHeader.h
│   ├── Core.h
│   ├── Data.h
│   ├── Element.h
│   ├── Header.h
│   ├── MsgPack.h
│   ├── MsgPackSocket.h
│   ├── netLink.h
│   ├── Number.h
│   ├── Primitive.h
│   ├── Socket.h
│   ├── StreamManager.h
│   └── Utf8.h
├── libnetLink.a
└── libnetLink.so

在CMake中我这样做:

cmake_minimum_required(VERSION 3.0.2)
project(MyProject)

add_library(libnetLink SHARED IMPORTED)

SET_PROPERTY(TARGET libnetLink PROPERTY IMPORTED_LOCATION /home/I/Direcytory/MsgPack/libnetLink.so)

set(SOURCE_FILES main.cpp)

include_directories("/home/I/Direcytory/MsgPack/include")

target_link_libraries(MyProject libnetLink)

CMake没有报告任何错误,但我的程序不会编译。

值得注意的是,上述方法对我和其他库工作正常。这让我很困惑。

0 个答案:

没有答案