QT(C++)使用libxl库出现undefined reference to `xlCreateBookW'错误求助
解决QT(C++)中libxl库
undefined reference to xlCreateBookW错误的方案 检查库位数与QT编译器位数是否一致
libxl分32位、64位版本,QT用64位编译器(如MSVC 64bit、MinGW 64bit)就必须配64位的libxl.lib和libxl.dll;32位编译器对应32位库。位数不匹配直接导致链接时找不到符号。修正.pro文件中的路径写法
Windows路径的反斜杠\在QT的.pro里要转成\\,或者换用正斜杠/,同时推荐用-L指定库目录、-l指定库名的写法,更不容易出错:INCLUDEPATH = C:/libxl-4.0.4.0/include_cpp LIBS += -LC:/libxl-4.0.4.0/lib -lxl添加必要的预处理宏
用libxl的C接口时,要确保编译器识别C版本的函数声明,在.pro文件里加一行:DEFINES += LIBXL_CPP清理旧构建文件后重新编译
QT可能缓存旧的构建信息,导致新配置不生效:- 点QT Creator的「构建」→「清理项目」
- 删除项目目录下的
build-*文件夹 - 重新构建项目
匹配Debug/Release模式的库文件
libxl通常分debug和release版本,QT当前是Debug模式就用libxl_d.lib和libxl_d.dll,Release模式用libxl.lib和libxl.dll,别混用版本。
内容的提问来源于stack exchange,提问作者Abdellah DIDI
相关产品推荐
相关产品推荐

