プロジェクトに外部ライブラリのチェーン(libjpegを使用してliblept)をリンクしようとしています。Cmake:静的リンクではランタイムにライブラリが必要です(appcrash 0xC0000135)
/Project
|leptonica
|--|include
| |--|leptonica
| | |--|<allheaders.h used by main.cpp is here>
| | |<jpeglib.h used by Leptonica is here>
| |lib
| |--|<.lib files here>
|CMakeLists.txt
|main.cpp
今、CMakeLists:インターネットを検索数多くの試みとはちょうど
プロジェクトフォルダの構造はかなり混乱して異なるcmakeのエラーを引き起こしました。これらのライブラリをリンクすることについて私が知っている唯一の事は、スタックオーバーフローの周りにある基本的なヒントが異なるエラーを生成することです。以下を除きます:
これはプロジェクトをリンクしますが、アプリケーションは0xC0000135
(dllの検索に失敗しました)でクラッシュします。
cmake_minimum_required(VERSION 3.5)
project(Project)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(SOURCE_FILES main.cpp)
add_library(liblept168 STATIC IMPORTED)
set_target_properties(
liblept168
PROPERTIES LINKER_LANGUAGE CXX
IMPORTED_LOCATION %Project%/leptonica/lib/liblept168.lib)
add_library(libjpeg8c-static-mtdll STATIC IMPORTED)
set_target_properties(
libjpeg8c-static-mtdll
PROPERTIES LINKER_LANGUAGE CXX
IMPORTED_LOCATION %Project%/leptonica/lib/libjpeg8c-static-mtdll.lib)
link_directories(leptonica/lib)
include_directories(leptonica/include)
include_directories(leptonica/include/leptonica)
add_executable(Project "${SOURCE_FILES}")
target_link_libraries(Project liblept168 libjpeg8c-static-mtdll)
何が問題なのですか。
:結果
CMakeLists
はこのようになります。これをチェックしてください:http://stackoverflow.com/questions/6421693/why-are-lib-files-beasts-of-such-a-duplicitous-atureこれは実際の実装のライブラリ、DLLと動的にリンクするために使用されるスタブのどちらかであるLIBファイルの問題です。 DLLをバイナリフォルダに追加しようとしましたか? – Jack