Mac使用CMake编译stasm

Mac使用CMake编译stasm

环境

macos 12.5.1
stasm 4.1.0
http://www.milbo.users.sonic.net/stasm/

步骤

一、 有个好心人编写了在Unix上用cmake构建的stasm的库。我们可以使用它辅助我们对stam进行编译。

  1. clone它: https://github.com/juan-cardelino/stasm
 git clone https://github.com/juan-cardelino/stasm.git

我将用STASM_DIR代表这个repo的根目录。

  1. 下载stam源码:http://www.milbo.users.sonic.net/stasm/
    将文件解压到STASM_DIR目录中进行文件覆盖。
  2. 在STASM_DIR目录下执行下面的命令。
cd STASM_DIR/apps
patch -p0 < appmisc.cpp.20140201.diff
cd STASM_DIR/apps/shapefile
patch -p0 < shapefile.cpp.20140201.diff
  1. 在STASM_DIR目录下创建一个build目录,进行编译。
  2. 正常情况下,你会编译不过。因为它依赖opencv库。实际安装了opencv3之后,我也发现一些函数调用已经不匹配了。可能stam源码依赖的是更早的某个版本的opencv。

二、安装opencv3

brew install opencv3

可能会遇到一些问题,不过一般可以通过搜索解决。

三、重新编译 stam

  1. 配置opencv

正常还是会编译不过。因为brew安装的opencv3. 默认cmake脚本中的find_package会寻找不到。
可以通过查看brew装的opencv3在哪个目录,我们手动指定下。
我的是装在了这个目录:/usr/local/opt/opencv@3。那么可以将CmakeList.txt中的find_package(OpenCV REQUIRED) 替换为 find_package(OpenCV REQUIRED CONFIG PATHS /usr/local/opt/opencv@3/share/OpenCV)
就可以寻找到了。

  1. 解决函数找不到的问题。

    有很多符号找不到的问题,大多数是因为没有导入头文件。我是直接根据IDE提示,进行了导入。
    还有一些问题是,可以通过在函数前面增减cv::,然后根据IDE提示,导入头文件。
    最终编译成功。

猜你喜欢

转载自blog.csdn.net/a992036795/article/details/128418507