设为首页
收藏本站
开启辅助访问
全部
问与答
创意
技术
酷工作
生活
交易
资源
节点
飞墙
Follow
明白贴
影视
报酬
登录
注册
飞社-令人惊奇的创意工作者社区-
›
首页
›
C++
›
C++新手,求助一个关于怎么使用第三方库的问题 ...
FSHEX=FIND+SHARE+EXPRESS
飞社-令人惊奇的创意工作者社区- 是一个关于发现分享表达的地方
现在登录
没有账号?
立即注册
推荐主题
›
相亲相处了一个月,被说拜拜了
›
年底了大家一人一句年终总结!
›
联通充值缴费 300,送小度智能音箱 L1
›
公司要搞逆天操作,我该何去何从
›
深夜吐槽,感觉职场中小组长和中层最难受
今日热议主题
想找一个这样的工作...
我们做了个基于大模型的投研应用,想请你来
你的每天工作时间和摸鱼时间各多少
24 年体检结果出来了
关于高度近视+散光使用 quest3?
高通车机 8295camera 分辨率问题
macos15 的请求权限弹窗是不是反人类啊
有用徕芬电动牙刷的吗,问个使用问题
求教各位大佬,小弟最近在开始研究 SEO, 博
出个苹果 magsafe 充电器
C++新手,求助一个关于怎么使用第三方库的问题
WangLiCha
· 2024-5-14 17:36:36 · 292 次点击
可能有点长,因为我也不知道我哪一步出错了,所以尽量多写一点信息:
之前完全没有做过 C++,因为项目需求临时看了下 C++和 Qt 的资料开始做东西;
之前电脑里装了 Viusal Studio 2022 ,所以电脑上是 2022 版本的 MSVC 组件,然后 Qt 在版本选型的时候考虑用的是 5.12.12 。这个版本安装包带的 MSVC 的库还是 2017 版本的,但是实际原生开发没有遇到问题,可以正常编译运行。
接下来有一个要解析展示 LaTeX 表达式的需求,找了下 GitHub 上有一个 JKQtPlotter 项目满足我的需求。按照我的理解,把 GitHub 上的库 clone 到本地,然后按照说明文档用 CMake 编译
```shelll
cmake -G "Visual Studio 17 2022" "-DCMAKE_PREFIX_PATH=D:\Qt\Qt5.12.12\5.12.12\msvc2017_64" ..
cmake --build . --config "Debug"
cmake --install . --config "Debug"
```
然后在 Qt Creator 里添加库,选择编译生成好又安装完成的.lib 文件,实际在 Qt Creator 写代码的时候也能正常给出这个库的代码提示。
但是编译无法通过,提示找不到函数……
我怀疑可能是编译器不匹配的问题,所以用 VS 安装工具单独安装了 MSVC2017 的生成器,但是安装完成过后 Qt Creator 依然是找不到 MSVC2017 ,CMake 的参数传-G "Visual Studio 15 2017"同样报错说找不到。
所以想请问一下这些操作步骤大概是哪里的问题?应该怎么去解决比较好?
之前只做过 C#和前端的项目,Nuget 和 npm 确实方便,甚至偶尔写过一点 Python 都有 pip ,相比之下 C++用起第三方库感觉真的好麻烦……
举报
·
292 次点击
登录
注册
站外分享
微信扫一扫
QQ分享
微博分享
豆瓣分享
复制链接
显示全部
|
最早评论
16 条回复
17#
snylonue
小成
2024-5-16 11:48:17
@guyeu 最近就在试用 conan (windows),qt 装不上,fltk 装完以后 cmake 找不到
16#
Nosub
小成
2024-5-15 09:13:45
建议用 vcpkg ,大部分第三库都有,不过要配合 vs 门槛更低,花点时间学习下 vcpkg ,如果要更进一步,需要学习下 cmake 脚本语言,学习 C++就是这样,库管理乱的一塌糊涂,c++ 20 才引入 Module ,只能等时间积累,你要对比 Maven 或是 npm ,只能说 c++还有很长的路要走,不过大部分项目,也会提供库的使用方法,无非是你现在不懂 cmake ;
15#
ysc3839
小成
2024-5-15 02:42:12
@liuhai233 NuGet 要配合 MSBuild 使用,配合 CMake 的话会麻烦很多,而且 NuGet 源里第三方 C++ 库可能没那么多。个人只建议写 Windows 程序、不跨平台的情况下使用。
14#
liuhai233
小成
2024-5-15 01:26:47
也能用 nuget
https://devblogs.microsoft.com/cppblog/nuget-for-c/
13#
424778940
小成
2024-5-14 23:41:24
推荐使用 msys2 套装, 然后 qt 项目不要用 qmake 工程, 而是使用 cmake 工程
我一般就算在 win 上, 除非一定要用 msvc 的场景, 比如要用 nv 的 cuda, 否则一律 msys2 的 mingw 工具链, 这样的代码移植到 linux 和其他平台特别方便, 基本不需要改什么, 另外 msvc 总喜欢定义一些名字很怪的宏这点我不太喜欢
12#
tr1v1z
小成
2024-5-14 23:34:15
没有用 xmake 的吗
11#
guyeu
小成
2024-5-14 23:25:57
Conan 可解你忧
10#
chouxw112233
小成
2024-5-14 23:05:21
试了下,没有问题
编译的库:
https://github.com/jkriege2/JKQtPlotter/releases/tag/v4.0.3
我的环境:
Qt Creator 12.0.2
Based on Qt 6.6.0 (MSVC 2019, x86_64)
testjkqtp.pro
```
LIBS += -LD:\Qt\pj\build-JKQtPlotterBuildAllExamples-Desktop_Qt_6_6_3_MinGW_64_bit-Debug\qmake\staticlib\jkqtplotterlib\debug -ljkqtplotterlib_debug
INCLUDEPATH += D:\Qt\pj\JKQtPlotter-4.0.3\lib
```
mainwindow.cpp
```
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
plot = new JKQTPlotter(true, this);
}
MainWindow::~MainWindow()
{
delete ui;
delete plot;
}
```
hpp
```
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QElapsedTimer>
#include <QCheckBox>
#include <QLineEdit>
#include <QTimer>
#include <QImage>
#include <QVBoxLayout>
#include <QWidget>
#include <QTabWidget>
#include <QFormLayout>
#include <QCheckBox>
#include "jkqtplotter/jkqtplotter.h"
QT_BEGIN_NAMESPACE
namespace Ui {
class MainWindow;
}
QT_END_NAMESPACE
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
private:
Ui::MainWindow *ui;
JKQTPlotter* plot;
};
#endif // MAINWINDOW_H
```
效果
![123123]( https://img2.imgtp.com/2024/05/14/CMZCRxcq.jpg)
9#
cnbatch
初学
2024-5-14 22:57:15
做 C++(以及 C 开发)需要严格区分以下种类:
32 位与 64 位
debug 与 release
动态库与静态库
从你给出的编译命令来看,是编译出 x64 debug 版本,至于是动态库还是静态库我就不去挖掘了。
然后在 qt creator 内用的是哪一种组合?这也是要注意的,如果能够贴出具体的报错提示和设置,那么大家可以更容易帮你给出编译设置步骤
8#
listenerri
小成
2024-5-14 22:33:46
要先明确是找不到函数的声明,还是找不到函数的定义( IDE 能补全不一定代表编译系统也能正常)
前者的话是因为第三方库的头文件没有添加进编译器搜索范围中,后者的话是因为找不到静态库或动态库文件,一般是因为库文件所在目录不在编译器/链接器搜索范围中,或是没有明确写出要链接第三方库
下一页 »
1
2
/ 2 页
下一页
浏览过的版块
优惠信息
返回顶部