链接到自行创建的dll失败
linking to self created dll fails
使用CLION,我确实创建了一个非常基本的"C++库",只包含一个函数。库类型为"共享"。图书馆里只有一个
void hello();
函数声明。Library.cpp包含的定义
void hello(){std::cout << "hello";}
当我编译它时,我得到了两个文件:libLibrary.dll和libLibrary.dll.a
我的问题来了。当我创建一个名为Test的新项目(一个可执行文件(时,我可以毫无问题地包含Library.h文件。但它不会编译,因为"对‘hello((’的未定义引用",这并不奇怪,因为我没有链接到创建的DLL文件。我在CMakeLists.txt中添加了"target_link_libraries",并将两个DLL文件复制到要构建可执行文件的同一目录中。
CMakeLists文件如下所示:
cmake_minimum_required(VERSION 3.12)
project(Test)
set(CMAKE_CXX_STANDARD 17)
add_executable(Test main.cpp)
target_link_libraries(Test Library)
它总是相同的错误信息:
C:/PROGRA~2/MINGW-~1/bin/../lib/gcc/i686-w64-mingw32/8.1.0/../../../../i686/w64-mingw32/bin/ld.exe: cannot find -lLibrary
我也试过
target_link_libraries(Test libLibrary)
target_link_libraries(Test -libLibrary)
target_link_libraries(Test -Library)
target_link_libraries(Test libLibrary.dll)
target_link_libraries(Test Library.dll)
target_link_libraries(Test -libLibrary.dll)
但无济于事。
我错过了什么?
我最终可以通过指定.dll文件的具体位置来链接到.dll文件,正如@drescherjm所建议的那样。此处使用命令成功链接到.dll文件
target_link_libraries(Test ${CMAKE_BINARY_DIR}/libLibrary.dll)
相关文章:
- 链接到自行创建的dll失败
- 为什么使用 P/Invoke 调用 dll 时,某些计算机中的 LoadLibrary 失败?
- 为什么 LoadLibrary 失败,而 LoadLibraryA 成功加载 DLL?
- 从 C#-DLL 调用函数的 C++ 失败
- 代码在 msvcrt .dll函数上设置断点失败
- 用户DLL/EXE中的堆分配失败
- DLL 注入不断失败,出现不一致的错误
- JNI 不满意链接错误: 动态链接库 (DLL) 初始化例程失败
- Dll 注入 - LoadLibraryA 失败
- jvm.dll 上的加载库失败,错误代码为 183
- 库调用失败 c++ dll
- 无法在 Python 3.5 上导入 cv2 DLL 加载失败
- 如何查找 dll 注册失败的原因
- 延迟加载opengl32.dll失败,出现Qt5
- Windows Phone 8.1引用C++dll失败
- 使用 GetProcAddress: 回调函数从C++调用 Delphi DLL 失败,参数无效
- 在某些计算机上加载C++DLL失败
- 从Java到c#通过JNI加载c# dll失败
- 如何才能因为本机C++DLL失败而捕获C#AppCrash
- 在发布版本中,将c#字符串传递到c++ dll失败