0

現在、外部のダイナミック リンク ライブラリ (dll) を cmake プロジェクトに追加しようとしています。.dll と .lib ファイルを取得しました。自分で答えを見つけるのに多くの時間を費やしましたが、解決策を見つけることができませんでした。インクルードは機能しますが、最小限のソリューションをコンパイルしようとすると、常にリンク エラーが発生します。CMAKE は、構成および生成中にエラーをスローせず、ライブラリを見つけます。誰かが以前に問題を抱えていて、私のエラーを認識してくれることを願っています

また、次のような独自の検索モジュールを作成します

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 

これがコードニペットです。リンクコマンドの意味がよくわかりませんか、コードに何か忘れていましたか?

#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;
}
4

0 に答える 0