C++ EXE不';无法在CMake中正确使用DLL

C++ EXE不';无法在CMake中正确使用DLL,c++,dll,cmake,clion,C++,Dll,Cmake,Clion,我已经读了很多关于类似问题的帖子,但是我仍然找不到以下问题的解决方案 我有两个CLion(OS Windows)项目mylib和myexe,它们位于同一级别的不同目录中。mylib由两个文件组成: 图书馆 void hello(); 和library.cpp #include "library.h" #include <iostream> void hello() { std::cout << "Hello, World!&quo

我已经读了很多关于类似问题的帖子,但是我仍然找不到以下问题的解决方案

我有两个CLion(OS Windows)项目mylib和myexe,它们位于同一级别的不同目录中。mylib由两个文件组成: 图书馆

void hello();
和library.cpp

#include "library.h"
#include <iostream>

void hello() {
    std::cout << "Hello, World!" << std::endl;
}
接下来,项目myexe由一个文件main.cpp组成

#include "../mylib/library.h"

int main() {
    hello();
    return 0;
}
使用以下CMakeLists.txt文件

cmake_minimum_required(VERSION 3.16)
project(myexe)

set(CMAKE_CXX_STANDARD 14)

add_executable(myexe main.cpp)

find_library(RESULT mylib "d:/src/test/mylib/cmake-build-debug")
target_link_libraries(myexe "${RESULT}")
这两个项目都没有错误。但当我运行myexe时,“Hello,world”并没有打印出来,我得到以下信息:

cmake_minimum_required(VERSION 3.16)
project(mylib)

set(CMAKE_CXX_STANDARD 14)

add_library(mylib SHARED library.cpp library.h)
Process finished with exit code -1073741515 (0xC0000135)

请帮助我,如何解决此问题并正确链接DLL。

正如@Scheff所建议的,我刚刚将这三行添加到myexe和mylib项目的CMakeLists.txt文件中:


其中“./../bin”是存储.dll和.exe所需的目录。

此错误意味着您在启动时尝试加载
myleb.dll
。因此,它的链接是正确的。请检查
myexe.exe
mylib.dll
是否内置在同一目录中(或将
mylib.dll
复制到
myexe.exe
文件夹中)。顺便说一句,在
CMake
中,您可以强制将所有二进制文件构建到同一个输出目录中,以防止将来出现此类问题。仅供参考:仅供参考:(请在此网站上进行文本搜索,查找
135
。我在HTML代码中找不到任何可以直接链接到它的内容。)这很有效!非常感谢
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "../../bin")
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "../../bin")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "../../bin")