Cmake:静态链接在运行时需要库(崩溃0xC0000135)

亚历克斯

我正在尝试将外部库链(使用libjpeg的liblept)链接到项目。大量尝试和搜索Internet都导致了不同的cmake错误,这非常令人困惑

项目文件夹的结构:

/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。关于链接这些库,我唯一了解的是Stack Overflow周围的基本提示会产生不同的错误。除了以下内容:

这样可以链接项目,但是应用程序崩溃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)

怎么了?

亚历克斯

感谢.libJack的关于s的注释,我找到了问题所在。问题是liblept168.lib的链接文件liblept168.dll,而不是静态库。因此,应将dll复制到可执行文件文件夹中。结果CMakeLists看起来像这样:

cmake_minimum_required(VERSION 3.5)
project(Jpeg_to_values)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

set(SOURCE_FILES main.cpp)

add_library(liblept168 SHARED IMPORTED)
set_target_properties(
    liblept168
    PROPERTIES LINKER_LANGUAGE CXX
    IMPORTED_LOCATION ${PROJECT_SOURCE_DIR}/leptonica/lib/liblept168.dll
    IMPORTED_IMPLIB ${PROJECT_SOURCE_DIR}/leptonica/lib/liblept168.lib)
add_library(libjpeg8c-static-mtdll STATIC IMPORTED)
set_target_properties(
        libjpeg8c-static-mtdll
        PROPERTIES LINKER_LANGUAGE CXX
        IMPORTED_LOCATION ${PROJECT_SOURCE_DIR}/leptonica/lib/libjpeg8c-static-mtdll.lib)
link_directories(leptonica/lib)
include_directories(leptonica/include)
include_directories(leptonica/include/leptonica)

add_executable(Jpeg_to_values "${SOURCE_FILES}")
target_link_libraries(Jpeg_to_values liblept168 libjpeg8c-static-mtdll)

add_custom_command(
        TARGET Jpeg_to_values POST_BUILD
        COMMAND ${CMAKE_COMMAND} -E copy_if_different
        "${PROJECT_SOURCE_DIR}/leptonica/lib/liblept168.dll"
        "$<TARGET_FILE_DIR:Jpeg_to_values>")

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

运行Qt hello world时处理退出代码0xC0000135

来自分类Dev

与动态库链接导致可执行的运行时崩溃

来自分类Dev

流程结束,退出代码为-1073741515(0xC0000135)

来自分类Dev

Eclipse / CDT无法调试具有链接依赖项的应用程序-程序退出,代码为0xc0000135

来自分类Dev

递归函数在运行时崩溃

来自分类Dev

在运行时链接 ContinueWith 任务

来自分类Dev

MKL示例代码可以使用cmake正常编译,但是在运行时崩溃

来自分类Dev

cmake-是否可以在运行时将可执行文件链接到具有相对路径的共享库?

来自分类Dev

在运行时检测和拦截链接库的依赖关系

来自分类Dev

Delphi是否需要运行时库?

来自分类Dev

为什么这个简单的strcat在运行时崩溃?

来自分类Dev

Xamarin Forms按钮单击事件在运行时崩溃

来自分类Dev

矩阵乘法程序在运行时崩溃

来自分类Dev

Poco作为具有动态运行时的静态库需要DLL的导入库吗?

来自分类Dev

如何在运行时更改静态方法的行为?

来自分类Dev

在运行时从静态UITableView删除行

来自分类Dev

WPF-在运行时更新静态资源值

来自分类Dev

在运行时以.so加载的c ++静态强制转换

来自分类Dev

如何在运行时从 dll 引用静态类

来自分类Dev

运行时崩溃

来自分类Dev

C ++如何在运行时链接函数声明?

来自分类Dev

为什么Java在运行时需要classpath

来自分类Dev

需要在运行时将 QLabel 文本大写

来自分类Dev

GLEW:我将其设置为使用静态库,但在运行时抱怨找不到libGlew.so

来自分类Dev

运行时程序包加载与静态链接

来自分类Dev

Java库的版本信息,可在运行时访问

来自分类Dev

在运行时加载基因敲除库

来自分类Dev

Fortran动态库,在运行时加载?

来自分类Dev

PHP Yii:数据库在运行时连接

Related 相关文章

  1. 1

    运行Qt hello world时处理退出代码0xC0000135

  2. 2

    与动态库链接导致可执行的运行时崩溃

  3. 3

    流程结束,退出代码为-1073741515(0xC0000135)

  4. 4

    Eclipse / CDT无法调试具有链接依赖项的应用程序-程序退出,代码为0xc0000135

  5. 5

    递归函数在运行时崩溃

  6. 6

    在运行时链接 ContinueWith 任务

  7. 7

    MKL示例代码可以使用cmake正常编译,但是在运行时崩溃

  8. 8

    cmake-是否可以在运行时将可执行文件链接到具有相对路径的共享库?

  9. 9

    在运行时检测和拦截链接库的依赖关系

  10. 10

    Delphi是否需要运行时库?

  11. 11

    为什么这个简单的strcat在运行时崩溃?

  12. 12

    Xamarin Forms按钮单击事件在运行时崩溃

  13. 13

    矩阵乘法程序在运行时崩溃

  14. 14

    Poco作为具有动态运行时的静态库需要DLL的导入库吗?

  15. 15

    如何在运行时更改静态方法的行为?

  16. 16

    在运行时从静态UITableView删除行

  17. 17

    WPF-在运行时更新静态资源值

  18. 18

    在运行时以.so加载的c ++静态强制转换

  19. 19

    如何在运行时从 dll 引用静态类

  20. 20

    运行时崩溃

  21. 21

    C ++如何在运行时链接函数声明?

  22. 22

    为什么Java在运行时需要classpath

  23. 23

    需要在运行时将 QLabel 文本大写

  24. 24

    GLEW:我将其设置为使用静态库,但在运行时抱怨找不到libGlew.so

  25. 25

    运行时程序包加载与静态链接

  26. 26

    Java库的版本信息,可在运行时访问

  27. 27

    在运行时加载基因敲除库

  28. 28

    Fortran动态库,在运行时加载?

  29. 29

    PHP Yii:数据库在运行时连接

热门标签

归档