Mac环境下构建darknet.so以运行Obico检测算法的技术求助
解决方案:Mac下编译带YOLOv2的Darknet并生成darknet.so
一、修正Darknet编译配置(核心:开启动态库生成)
你用的AlexanderAB版Darknet默认未开启动态库编译,按以下步骤调整即可生成darknet.so:
- 克隆仓库并切换到兼容YOLOv2的稳定分支:
git clone https://github.com/AlexeyAB/darknet.git cd darknet git checkout v3.1 # 该版本对YOLOv2支持更稳定 - 修改根目录的
Makefile,调整以下关键参数:GPU=0 # Mac无NVIDIA GPU时设为0 CUDNN=0 OPENCV=1 # 开启OpenCV集成 SHARED=1 # 必须开启,才会生成darknet.so CXX=g++ CXXFLAGS += -std=c++11 # 强制启用C++11支持 - 清理旧编译文件并重新编译:
make clean && make -j$(sysctl -n hw.logicalcpu)
编译完成后,根目录会生成darknet.so文件。
二、OpenCV适配(无需折腾旧版,新版也能兼容)
方法1:Homebrew安装适配C++11的OpenCV
- 先卸载冲突的旧版本:
brew uninstall --force opencv - 带参数重新编译安装:
brew install opencv --build-from-source -DCMAKE_CXX_STANDARD=11 - 配置pkg-config路径(根据Mac架构调整):
- Intel芯片:
export PKG_CONFIG_PATH="/usr/local/opt/opencv/lib/pkgconfig" - Apple Silicon:
export PKG_CONFIG_PATH="/opt/homebrew/opt/opencv/lib/pkgconfig"
- Intel芯片:
- 验证配置:执行
pkg-config --cflags opencv4,能输出编译参数即配置成功。
方法2:手动编译OpenCV(解决.pc文件适配问题)
如果Homebrew安装失败,手动编译OpenCV 4.x稳定版(以4.5.5为例):
- 下载源码并进入目录:
curl -L https://github.com/opencv/opencv/archive/4.5.5.tar.gz | tar xz cd opencv-4.5.5 && mkdir build && cd build - 执行cmake命令,指定C++11并生成标准
.pc文件:cmake \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_CXX_STANDARD=11 \ -DBUILD_opencv_world=ON \ -DPKG_CONFIG_EXECUTABLE=/usr/bin/pkg-config \ -DCMAKE_INSTALL_PREFIX=/usr/local \ # Apple Silicon改为/opt/homebrew .. - 编译安装:
make -j$(sysctl -n hw.logicalcpu) && sudo make install - 适配Darknet的
.pc文件查找逻辑:ln -s /usr/local/lib/pkgconfig/opencv4.pc /usr/local/lib/pkgconfig/opencv.pc
三、验证集成效果
编译完成后,用YOLOv2的官方配置测试:
./darknet detector test cfg/coco.data cfg/yolov2.cfg yolov2.weights data/dog.jpg
能正常输出检测结果即说明Darknet+YOLOv2+OpenCV集成成功。
内容的提问来源于stack exchange,提问作者Red_button
相关产品推荐
相关产品推荐

