Clion导入第三方库所遇到的问题
以导入libxl库为例(下载链接:LibXL download)
配置CMakeLists.txt文件
cmake_minimum_required(VERSION 3.25)
project(LibXL_TEST)
set(CMAKE_CXX_STANDARD 11)
#声明include、lib路径
set(INC_DIR D:/3_RunningConfig/1_MinGW/libxl-win-4.2.0/libxl-4.2.0/include_cpp)
set(LINK_DIR D:/3_RunningConfig/1_MinGW/libxl-win-4.2.0/libxl-4.2.0/lib64)
#引入头文件、库文件
include_directories(${INC_DIR})
link_directories(${LINK_DIR})
#添加编译文件main.cpp
add_executable(LibXL_TEST main.cpp)
#链接第三方库()
target_link_libraries(LibXL_TEST PUBLIC libxl)
运行cmake之后,可以查看头文件已经加入到项目中了
编写main.cpp程序
#include <iostream>
#include <libxl.h>
using namespace std;
using namespace libxl;
int main() {
Book* book = xlCreateBook();
if(book) {
Sheet *sheet = book->addSheet("Sheet1");
if(sheet) {
sheet->writeStr(1, 1, "Hello");
}
book->save("Example.xls");
book->release();
}
std::cout << "Hello, World!" << std::endl;
return 0;
}
导入动态链接库
将libxl中的bin64/libxl.dll文件拷入到项目的可运行文件目录下,此时运行程序,即可成功
遇到的问题
Ⅰ 未导入dll文件时,导致程序异常终止
Process finished with exit code -1073741515 (0xC0000135)
解决思路:导入项目所需要的dll文件到可执行文件(.exe)目录下
Ⅱ 未定义引用的函数(找不到符号定义)
undefined reference to `xlCreateBookA’
原因:所编写的CMakeLists.txt文件错误,连接第三方库时写错了!
# 注意下面的区别,不要用错函数
target_link_libraries(LibXL_TEST PUBLIC libxl)
target_link_directories(LibXL_TEST PUBLIC libxl)
Ⅲ 未找到xxx
…/x86_64-w64-mingw32/bin/ld.exe: cannot find -lxl
原因:工具链配置存在问题(可能是你电脑自行配置的MinGW有错误)
解决思路使用CLion自带的捆绑工具链(CMake的配置也需要多留意)