crossguid找不到uuid

时间:2018-10-15 23:49:42

标签: c++ cmake

标题说明了一切。在链接方面我有点迷路。我在应用程序中使用crossguid。我已经运行了installation steps,但是在尝试make项目时,我得到了:

//usr/local/lib/libcrossguid.a(guid.cpp.o): In function `xg::newGuid()':
guid.cpp:(.text+0x133c): undefined reference to `uuid_generate'

我正在运行Ubuntu 18.04 LTS。安装uuid-dev会将uuid.h安装到/usr/include

libuuid.a安装在/usr/lib/x86_64-linux-gnu

在安装crossguid时,它会找到libuuid.o

-- Found LibUUID: /usr/lib/x86_64-linux-gnu/libuuid.o

CMakeLists.txt

cmake_minimum_required(VERSION 3.5.1)
project(test_project)

set(CMAKE_BUILD_TYPE Debug)
# set(CMAKE_BUILD_TYPE Release)

set(CMAKE_CXX_STANDARD 14)

include_directories(include)

add_executable(${PROJECT_NAME}
    ...
)

target_link_libraries(${PROJECT_NAME}
    pistache
    pthread
    uuid
    crossguid
)

我不确定是否需要在此级别定位uuid库。请让我知道是否必须。

我不确定源是否相关,因为它似乎是我项目之外的链接问题,但无论如何我都会将其包括在内:

Event.h

#ifndef Event_H_
#define Event_H_

#include <crossguid/guid.hpp>

class Event {
    public:
        ...

        xg::Guid getEventId();
        void setEventId();
        bool eventIdIsSet() const;
        void unsetEventId();

        ...
    protected:
        xg::Guid _eventId;
        bool _eventIdIsSet;

        ...
};

#endif /* Event_H_ */

Event.cpp

#include "../include/Event.h"

xg::Guid Event::getEventId() {
    return _eventId;
}

void Event::setEventId() {
    _eventId = xg::newGuid();
}

在我看来crossguid能够找到uuid,所以我不确定为什么会遇到麻烦。

0 个答案:

没有答案