C++ 如何将opendnp3添加为静态C++;图书馆

C++ 如何将opendnp3添加为静态C++;图书馆,c++,cmake,include,static-libraries,dnp3,C++,Cmake,Include,Static Libraries,Dnp3,我目前正在尝试将设置为静态库。我已经构建了以下解决方案,并且能够生成几个.lib文件,我假设这些文件是静态库 在一个完全独立的文件夹中,我有以下文件夹结构下的文件: C:/Development/C++/opendnp3/lib/ # .lib files are contained in this directory C:/Development/pybexample/ --> CMakeLists.txt --> src/ --> test.cpp 我将CMak

我目前正在尝试将设置为静态库。我已经构建了以下解决方案,并且能够生成几个.lib文件,我假设这些文件是静态库

在一个完全独立的文件夹中,我有以下文件夹结构下的文件:

C:/Development/C++/opendnp3/lib/ # .lib files are contained in this directory

C:/Development/pybexample/
--> CMakeLists.txt
--> src/
    --> test.cpp
我将CMakeLists.txt配置如下:

cmake_minimum_required(VERSION 2.8)
project(pybexample)

set(SOURCE_FILES src/test.cpp)

add_library(opendnp3 STATIC IMPORTED)
set_target_properties(opendnp3 PROPERTIES IMPORTED_LOCATION C:/Development/C++/opendnp3/lib/opendnp3.lib)

add_executable(pybexample ${SOURCE_FILES})
target_link_libraries(pybexample opendnp3)
在test.cpp中,我只是简单地调用:

#include <iostream>
#include "opendnp3/LogLevels.h"
using namespace std;

int main(void) {
    cout << "Hello world!" << endl;
    system("pause");
}
#包括
#包括“opendnp3/LogLevels.h”
使用名称空间std;
内部主(空){

结果表明,这是由两个问题引起的

第一个问题是,我需要在我的
CMakeLists.txt
中添加一行,将opendnp3的头文件添加到我的项目中。这是通过在
add_可执行文件(pybexample${SOURCE_files}
行之前添加
include_directories()
来完成的


然而,在这样做的过程中,很明显还有第二个问题:我没有正确构建库,因为库没有生成任何头文件。结果我忽略了对的说明。在设置CMAKE_INSTALL_前缀并运行安装项目后,库文件和头文件被生成并准备好使用。

Yo你没有将include目录添加到你的
CMakeLists.txt
^谢谢你指出这一点!结果有两个问题。第一个问题是库没有正确编译,所以我实际上没有要包含的标题。第二个问题是我缺少include\u目录()在正确编译库并将该行添加到我的CMakeLists.txt中后,问题似乎已得到解决。我建议您回答自己的问题。