当前位置:首页>Linux>【图文详解】Ubuntu / Linux +VSCode 配置 CMake 编译 OpenCV 超详细教程

【图文详解】Ubuntu / Linux +VSCode 配置 CMake 编译 OpenCV 超详细教程

  • 2026-02-10 19:28:35
【图文详解】Ubuntu / Linux +VSCode 配置 CMake 编译 OpenCV 超详细教程
在 Linux 环境下进行计算机视觉开发,OpenCV 是必备的开源库,而 VSCode 凭借轻量、高效的特性成为主流编辑器。本文将手把手教你在 Ubuntu 系统中通过 CMake 编译安装 OpenCV,并完成 VSCode 的全流程配置,解决编译、链接、运行中的常见问题,让你快速搭建可直接开发的 OpenCV 环境。

一、OpenCV 核心编译流程

Linux 下编译安装 OpenCV 遵循源码解析 - 配置 - 编译 - 安装的标准流程,核心依托 CMake 生成适配系统的编译脚本,再通过 make 完成编译,整体流程下,本博文将会围绕此流程逐步讲解配置方法:

二、下载 OpenCV 源码包

打开 OpenCV 官方下载地址:https://opencv.org/releases/,选择所需版本(本文以4.10.0为例),下载Sources源码包:

将下载的opencv-4.10.0.zip放到 Ubuntu 的指定目录(本文示例:~/app/OpenCv4.10.0/)

三、安装编译依赖与工具

在进行 OpenCV 编译前,需要先安装 CMake、make 编译工具,以及 OpenCV 所需的基础依赖库,所有操作均在终端中执行。

3.1 解压源码包

进入源码包存放目录,右键打开终端:

执行解压命令:

unzip opencv-4.10.0.zip

解压完成后会生成opencv-4.10.0源码目录。

3.2 安装 CMake 和 make

安装CMake和 make,执行下面指令:

# 安装CMakesudo apt install cmake#安装makesudo apt install make

验证安装:输入以下命令,显示版本号即安装成功:

cmake --versionmake --version

3.3 安装 OpenCV 核心依赖包

执行以下命令安装编译所需的依赖库(涵盖图形界面、图像编解码、视频处理等功能):

sudo apt-get install build-essential libgtk2.0-dev libgtk-3-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev libopenexr-dev libtbb-dev

等待依赖包下载安装完成,过程中若出现确认提示,输入y回车即可。

四、CMake 配置与 OpenCV 编译

采用源码目录与编译目录分离的规范,在源码目录内新建build文件夹,所有编译文件均存放在该文件夹中,避免污染源码。

4.1 创建 build 编译目录

进入解压后的opencv-4.10.0目录,右键新建文件夹并命名为build,或通过终端执行:

cd opencv-4.10.0mkdir buildcd build

4.2 CMake 生成 Makefile

根据开发需求选择发布模式(Release) 或调试模式(Debug),在 build 目录下执行对应的 CMake 命令,核心是生成适配系统的 Makefile。

4.2.1 模式 1:发布模式(边缘部署 / 实际开发使用)

如果需要用于边缘部署,轻量OpenCV,体积小、运行快,开启编译器最高级优化,无调试信息,执行下面指令:

cmake -D CMAKE_BUILD_TYPE=Release -D OPENCV_GENERATE_PKGCONFIG=YES ..

4.2.2 模式 2:调试模式(仅调试 OpenCV 源码时使用)

如果需要调试OpenCV源码本身,生成的库包含调试信息,可通过 gdb 调试 OpenCV 源码,但运行速度慢、库体积大,执行下面指令:

cmake -D CMAKE_BUILD_TYPE=Debug -DOPENCV_GENERATE_PKGCONFIG=YES ..

指令参数解析:

cmake:基础指令,启动 CMake 工具,用于解析上级目录的 OpenCV 源码配置文件(CMakeLists.txt),生成适配 Linux 系统的编译脚本(Makefile)。-D:CMake 参数定义前缀,用于设置编译变量CMAKE_BUILD_TYPE=Release/Debug:指定编译模式OPENCV_GENERATE_PKGCONFIG=YES:强制生成 opencv4.pc 配置文件,解决 OpenCV4.x 默认不生成该文件的问题,方便后续通过 pkg-config 获取编译链接参数..:指定 CMake 解析的 CMakeLists.txt 位于当前目录的上级目录(源码根目录)

执行结果:终端会输出系统环境检测、依赖检测信息,最终显示Configuring done、Generating done即配置成功,build 目录下会生成 Makefile 及各类编译配置文件,如下:

4.3 make 编译源码

在 build 目录下执行make命令,调用 g++ 编译所有 OpenCV 源码文件,该过程耗时较长(根据电脑配置,约 10-30 分钟):

make

编译成功标志:终端最终显示100%,且无报错信息,所有目标文件编译完成。

4.4 make install 安装 OpenCV

将编译好的库文件(.so)、头文件、可执行文件安装到 Ubuntu 系统默认路径(/usr/local/),执行命令:

sudo make install

安装完成后,OpenCV 的头文件存放在/usr/local/include/opencv4/,库文件存放在/usr/local/lib/。

五、配置 OpenCV 系统环境变量

安装完成后,需要配置系统环境变量,让 Ubuntu 能识别 OpenCV 的库文件和 pkg-config 配置文件,否则运行程序时会出现库文件找不到的错误。

5.1 添加 OpenCV 库路径

新建并编辑 opencv4.conf 配置文件,指定库文件路径:

sudo gedit /etc/ld.so.conf.d/opencv4.conf

指令解析:以管理员权限打开opencv4.conf配置文件(文件不存在则新建,空白则直接编辑)。

指定 OpenCV 编译后生成的库文件(.so文件)所在的目录,将下面内容写到打开的空白编辑界面中(OpenCV 默认库文件路径),保存并关闭文件:

/usr/local/lib

执行刷新系统共享库缓存命令,让路径生效:

sudo ldconfig

5.2 配置 pkg-config 路径

通过配置 bash 文件,让系统识别 OpenCV 的.pc 配置文件,方便编译时通过 pkg-config 自动获取头文件和库文件路径。

5.2.1 编辑系统级 bash 配置文件

以管理员权限打开系统级的 bash 配置文件,这个文件是 Linux 终端的 “全局设置文件”,修改后所有用户的终端都会生效。执行下面指令:

sudo gedit /etc/bash.bashrc

5.2.2 添加环境变量

在打开的巴适文件末尾添加以下两行内容:

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfigexport PKG_CONFIG_PATH

添加内容解析:

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig:告诉pkg-config工具(编译辅助工具)去哪里找 OpenCV 的配置文件(.pc文件)。相当于给编译器的 “导航仪” 更新地图,让它知道 OpenCV 的头文件、库文件位置,以及编译时需要链接哪些依赖。export PKG_CONFIG_PATH:把上面的路径设置为系统环境变量,让所有终端会话都能识别

5.2.3 刷新 bash 配置,立即生效

立即生效 bash 配置,无需重启终端,执行下面指令:

source /etc/bash.bashrc

5.2.4 可选:配置用户级 bash 文件(双重保障)

终端输入指令:

gedit ~/.bashrc

在最后一行输入:

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH

刷新,让配置生效

source ~/.bashrc

5.3 验证环境变量配置

执行以下命令,查看 PKG_CONFIG_PATH 值,包含/usr/local/lib/pkgconfig即配置成功:

echo $PKG_CONFIG_PATH

六、验证 OpenCV 安装成功

6.1 安装mlocate工具

安装mlocate工具(包含locate命令),这是 Linux 的 “文件快速搜索工具”,能快速查找系统里的文件(比如验证 OpenCV 的配置文件是否存在。执行下面指令安装:

sudo apt-get install mlocate

检验是否安装成功:

mlocate --version

搜索OpenCV配置文件:

locate opencv4.pc

输出/usr/local/lib/pkgconfig/opencv4.pc即表示配置文件存在。

6.2 验证OpenCV

通过pkg-config工具查询 OpenCV4 的版本号,如果能输出具体版本号(如4.10.0),说明 OpenCV 的路径、配置都已生效,编译环境配置成功;如果报错,说明配置步骤有问题。执行下面指令:

pkg-config --modversion opencv4

七、VSCode 中配置 OpenCV 开发环境

完成系统级的 OpenCV 安装后,需要配置 VSCode,让其识别 OpenCV 头文件、实现编译和调试,核心是配置 3 个关键文件:c_cpp_properties.json、launch.json、tasks.json,并解决 Code Runner 插件的运行问题。

c_cpp_properties.json→只管智能提示tasks.json→只管编译launch.json→只管运行 + 调试

7.1 新建 VSCode 项目

打开 VSCode,新建文件夹作为项目目录(示例:test_opencv)

在项目目录中新建.cpp文件(示例:opencv_demo.cpp)

7.2 配置 c_cpp_properties.json(识别头文件)

该文件用于让 VSCode 的 IntelliSense 识别 OpenCV 头文件,避免代码中#include标红报错。

按下快捷键Ctrl+Shift+P,输入edit或编辑配置,选择C/C++: 编辑配置 (JSON)。

自动生成.vscode/c_cpp_properties.json文件,替换为以下内容:

关键配置:/usr/local/include/opencv4为 OpenCV 头文件路径,添加后 VSCode 可正常索引 OpenCV 头文件。,c_cpp_properties.json文件内容为:

{    "configurations": [        {            "name""Linux",            "includePath": [                "${workspaceFolder}/**",                "/usr/local/include/opencv4",        // 添加头文件路径                "/usr/include/**"            ],            "defines": [],            // "compilerPath""/usr/bin/gcc",               // gcc 路径            "compilerPath""/usr/bin/g++",               // g++ 路径            "cStandard""c17",            "cppStandard""gnu++14",            "intelliSenseMode""linux-gcc-x64"        }    ],    "version"4}

7.3 配置 launch.json(调试配置)

该文件用于 VSCode 的 gdb 调试,指定调试的可执行文件、调试器路径等,依赖 tasks.json 的编译任务。

按下Ctrl+Shift+D,打开运行和调试,点击创建一个launch.json文件,自动生成文件后替换为以下内容:

关键配置:preLaunchTask: "g++ build opencv"指定调试前先执行的编译任务,需与 tasks.json 中的任务标签一致。launch.json文件内容如下:

{    "version""0.2.0",    "configurations": [        {            "name""g++ debug opencv",   // 调试配置名称            "type""cppdbg",           // Linux下适配gdb的调试类型            "request""launch",            // 调试的可执行文件路径,和tasks.json的输出路径一致            "program""${fileDirname}/${fileBasenameNoExtension}",            "args": [],                   // 程序运行参数(无则留空)            "stopAtEntry"false,         // 不自动暂停在main函数入口            "cwd""${fileDirname}",            "environment": [],            "externalConsole"false,     // 避免OpenCV图片窗口闪退            "MIMode""gdb",            "setupCommands": [                {                    "description""为gdb启用整齐打印",                    "text""-enable-pretty-printing",                    "ignoreFailures"true                }            ],            // 调试前先执行编译任务,label必须和tasks.json中的label一致            "preLaunchTask""g++ build opencv",             // 与tasks.json文件中label一致            "miDebuggerPath""/usr/bin/gdb"  // Linux默认gdb路径        }    ]}

7.4 配置 tasks.json(编译任务)

该文件定义 VSCode 的编译命令,核心是将 OpenCV 的编译链接参数融入 g++ 命令,实现一键编译。

在.vscode文件夹中手动新建tasks.json文件或者通过Debug C/C++File创建:

写入以下内容,包含OpenCV 专用编译任务和普通 C++ 编译任务:

核心命令:$(pkg-config --cflags --libs opencv4)会自动获取 OpenCV 的头文件路径(-I)和库文件链接参数(-L/-l),无需手动写死路径。tasks.json文件内容为:

{    "version""0.2.0",    "configurations": [        {            "name""g++ debug opencv",   // 调试配置名称            "type""cppdbg",           // Linux下适配gdb的调试类型            "request""launch",            // 调试的可执行文件路径,和tasks.json的输出路径一致            "program""${fileDirname}/${fileBasenameNoExtension}",            "args": [],                   // 程序运行参数(无则留空)            "stopAtEntry"false,         // 不自动暂停在main函数入口            "cwd""${fileDirname}",            "environment": [],            "externalConsole"false,     // 避免OpenCV图片窗口闪退            "MIMode""gdb",            "setupCommands": [                {                    "description""为gdb启用整齐打印",                    "text""-enable-pretty-printing",                    "ignoreFailures"true                }            ],            // 调试前先执行编译任务,label必须和tasks.json中的label一致            "preLaunchTask""g++ build opencv",             // 与tasks.json文件中label一致            "miDebuggerPath""/usr/bin/gdb"  // Linux默认gdb路径        }    ]}

八、OpenCV 测试代码与运行

8.1 测试代码

在opencv_demo.cpp中写入以下代码,实现图片读取与显示,注意替换图片绝对路径为自己的图片路径:

#include<opencv2/opencv.hpp>#include<iostream>using namespace cv;using namespace std;intmain(){    // 读取图片,替换为自己的图片绝对路径    Mat img = imread("/home/yizuou/code/C++/test_opencv/image/OIP-C.jpg");    if (img.empty()) {        cout << "图片读取失败!" << endl;        return -1;    }    // 显示图片    imshow("Test Image", img);    waitKey(0);  // 等待按键关闭窗口    destroyAllWindows();    return 0;}

8.2 运行代码

8.2.1 Ctrl+Shift+B编译后运行

按下Ctrl+Shift+B,选择g++ build opencv,VSCode 会执行编译命令,编译成功后在终端中执行生成的可执行文件:

./opencv_demo

运行成功:弹出图片显示窗口,显示指定的图片,按下任意键关闭窗口。

8.2.2 F5运行

比较省事的运行是直接按下键盘上的F5键,VSCode会执行:

launch.json → preLaunchTask → tasks.json → g++ 编译 → 生成可执行 → gdb 启动 → 运行程序

这是完整工业级调试运行流程,可以直接运行后出图:

8.2.3 ▶ Run Code

8.2.3.1 可能报错

通过run code运行代码时报错:

报错如下:

cd "/home/yizuou/code/C++/test_opencv/" && g++ opencv_demo.cpp -o opencv_demo && "/home/yizuou/code/C++/test_opencv/"opencv_demo

opencv_demo.cpp:1:10: fatal error: opencv2/opencv.hpp: 没有那个文件或目录

1| #include

|^~~~~~~~~~~~~~~~~~~~

compilation terminated.

8.2.3.2 报错分析

从日志可以看到:cd "/home/yizuou/code/C++/test_opencv/" && g++ opencv_demo.cpp -o opencv_demo,根本没有:$(pkg-config --cflags --libs opencv4)。没有 -I/usr/local/include/opencv4,编译器自然找不到

点的是 右上角 ▶ Run Code,用 VSCode 的 Code Runner 插件在跑,此插件 的运行方式:

g++ xxx.cpp -o xxx

Code Runner 插件不会读取 tasks.json,不会读取 launch.json,不会读取 c_cpp_properties.json,它只会用自己的默认模板命令。

8.2.3.3 解决办法

修改 VSCode 的 Code Runner 插件的 cpp 执行模板,让它自动加上:$(pkg-config --cflags --libs opencv4)

点 ▶ Run Code,执行的就不再是:g++ test.cpp -o test,而是:g++ test.cpp -o test $(pkg-config --cflags --libs opencv4)

按下Ctrl + Shift + P,搜索:Preferences: Open Settings (JSON),输入下面内容:

"code-runner.executorMap": {"cpp":"cd $dir && g++ $fileName -o $fileNameWithoutExt$(pkg-config --cflags --libs opencv4) && ./$fileNameWithoutExt"}

重启 VSCode。

8.2.3.4 run code运行测试

点击 ▶ 之后,真正执行的过程见下,自动编译,自动链接 OpenCV,自动运行。

cd 当前目录 && g++ opencv_demo.cpp -o opencv_demo $(pkg-config --cflags --libs opencv4) && ./opencv_demo

九、总结

本文详细介绍了在Ubuntu系统中通过CMake编译安装OpenCV的全流程。主要内容包括:下载OpenCV源码、安装编译工具与依赖库、使用CMake配置生成Makefile、执行make编译源码等关键步骤。文章提供了发布模式和调试模式两种配置方案,并解析了各命令参数作用,帮助开发者快速搭建OpenCV开发环境。通过图文结合的方式,详细展示了每个操作环节的终端输出,便于读者对照验证。最终编译生成的OpenCV库可应用于计算机视觉项目开发,为后续VSCode配置提供基础支持。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-02-11 00:39:02 HTTP/2.0 GET : https://f.mffb.com.cn/a/474850.html
  2. 运行时间 : 0.164134s [ 吞吐率:6.09req/s ] 内存消耗:4,322.02kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=88c01409bab82009e326709f8767b49f
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000837s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000718s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000317s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000262s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000505s ]
  6. SELECT * FROM `set` [ RunTime:0.000190s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000503s ]
  8. SELECT * FROM `article` WHERE `id` = 474850 LIMIT 1 [ RunTime:0.000422s ]
  9. UPDATE `article` SET `lasttime` = 1770741542 WHERE `id` = 474850 [ RunTime:0.007972s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.000308s ]
  11. SELECT * FROM `article` WHERE `id` < 474850 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000635s ]
  12. SELECT * FROM `article` WHERE `id` > 474850 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000354s ]
  13. SELECT * FROM `article` WHERE `id` < 474850 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000727s ]
  14. SELECT * FROM `article` WHERE `id` < 474850 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.003487s ]
  15. SELECT * FROM `article` WHERE `id` < 474850 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.002813s ]
0.165797s