Dll 尝试将外部库包含到CMAKE项目时发生链接错误

Dll 尝试将外部库包含到CMAKE项目时发生链接错误,dll,cmake,Dll,Cmake,我目前正在尝试将外部动态链接库(dll)添加到我的cmake项目中。我有.dll和.lib文件。我花了很多时间自己寻找答案,但没有找到解决办法。include可以工作,但当我试图编译最小解时,总是会出现链接错误。CMAKE在配置和生成时不会抛出错误,并会查找库。我希望以前有人遇到过这个问题,并认识到我的错误 我还构建了自己的find模块,如下所示 find_path(LLT_INCLUDE_DIR InterfaceLLT_2.h HINTS ${LLT_DIR}) find_library(

我目前正在尝试将外部动态链接库(dll)添加到我的cmake项目中。我有.dll和.lib文件。我花了很多时间自己寻找答案,但没有找到解决办法。include可以工作,但当我试图编译最小解时,总是会出现链接错误。CMAKE在配置和生成时不会抛出错误,并会查找库。我希望以前有人遇到过这个问题,并认识到我的错误

我还构建了自己的find模块,如下所示

find_path(LLT_INCLUDE_DIR InterfaceLLT_2.h HINTS ${LLT_DIR})

find_library(LLT_LIBRARY NAMES LLT HINTS ${LLT_DIR} )

set(LLT_LIBRARIES ${LLT_LIBRARY} )

set(LLT_INCLUDE_DIRS ${LLT_INCLUDE_DIR} )

include(FindPackageHandleStandardArgs)

# handle the QUIETLY and REQUIRED arguments and set LIBXML2_FOUND to TRUE

# if all listed variables are TRUE

find_package_handle_standard_args(LLT  DEFAULT_MSG LLT_LIBRARY LLT_INCLUDE_DIR)

mark_as_advanced(LLT_INCLUDE_DIR LLT_LIBRARY )
相应的CMakeLists.txt如下所示

PROJECT(TestProg)

cmake_minimum_required(VERSION 2.8)

FIND_PACKAGE(LLT REQUIRED)

INCLUDE_DIRECTORIES(${LLT_INCLUDE_DIR})

SET(TestProg_SOURCES

main.cpp

)

SET(TestProg_HEADERS

)

add_executable(TestProg ${TestProg_SOURCES} ${TestProg_HEADERS})

target_link_libraries(TestProg ${LLT_LIBRARIES} )
这是CMAKE输出

The C compiler identification is MSVC 16.0.40219.1

The CXX compiler identification is MSVC 16.0.40219.1

Check for working C compiler using: Visual Studio 10

Check for working C compiler using: Visual Studio 10 -- works

Detecting C compiler ABI info

Detecting C compiler ABI info - done

Check for working CXX compiler using: Visual Studio 10

Check for working CXX compiler using: Visual Studio 10 -- works

Detecting CXX compiler ABI info

Detecting CXX compiler ABI info - done

Found LLT: C:/XXX/LLT.lib

Configuring done

Generating done 
这是代码片段。我真的不知道使用link命令意味着什么,或者我在代码中忘记了什么

#include <iostream>
#include "InterfaceLLT_2.h"
using namespace std;

int main()
{

    bool bLoadError;

    CInterfaceLLT* m_pLLT;

     m_pLLT = new CInterfaceLLT("LLT.dll", &bLoadError);

     cout << "Hello World!" << endl;



    return 0;
}
#包括
#包括“接口单元2.h”
使用名称空间std;
int main()
{
布尔·布劳德罗;
CInterfaceLLT*m_pLLT;
m_pLLT=new CInterfaceLLT(“LLT.dll”和&bLoadError);

你能告诉我们你构建时执行的最终链接命令吗?谢谢你的回复。出于可读性的原因,我在额外的回复中添加了代码。StackOverflow不是这样工作的。你不应该用问题的第二部分来回答你的问题。请编辑你的帖子,将完整的问题放在问题部分我解决了这个问题。我不是一个动态链接库,而是一个C函数库,我必须自己在项目中加载。