macOS编译OpenCV4

CMake – configure(Unix Makefiles) Cmake – Generate -> Binaries sudo make sudo make install sudo make uninstall Step1. CMake 打开CMake图形界面,选择好源代码路径以及二进制文件输出路径(输出路径可以在原文件夹下新建一个binaries或者build目录,命名随意)。 然后点击Configure,等待之后会列出一些红色项,继续点击Configure直至没有红色项。 现在点击Generate开始生成Binaries。   现在build目录下应该多了很多文件。 在终端Terminal中进入build目录,使用命令 sudo make 运行完毕后再使用命令 sudo make install 至此就安装完毕了。 (install log) 提示:make时可能需要等待一会儿,喝杯咖啡稍安勿躁。 最后,在/usr/local/include和/usr/local/lib会多出OpenCV相关文件。 /build/lib/python3/cv2.cpython-35m-x86_64-linux-gnu.so       install log: TabTuT:opencv Tab$ sudo make install Password: [ 2%] Built target zlib [ 6%] Built …

Install OpenCV 4 on macOS

This tutorial provides step-by-step instructions to install OpenCV 4 (with Python bindings) on your macOS machine. OpenCV 4 was released on November 20th, 2018. I originally wrote this blog post when the alpha version was released, and it has now been updated on November 30th, 2018 to support the official release. OpenCV 4 comes with new features, particularly …

Build subl(Sublime Text) short cut in OS X Command Line

Sublime Text includes a command line tool, subl, to work with files on the command line. This can be used to open files and projects in Sublime Text, as well working as an EDITOR for unix tools, such as git and subversion. Setup The first task is to make a symlink to subl. Assuming you’ve placed Sublime Text in …

异步线程的两种方法Callback 和 Future&Runnable

●介绍 有时候执行一个任务需要很长时间,单线程下线程会处于阻塞状态。这个时候我们会考虑一种非阻塞的处理模式。非阻塞任务在任何编程语言里都必不可少,Java也不例外。多线程就是一个很好的解决办法。 但是多线程是异步处理,异步就意味着不知道处理结果,如果我们需要知道处理结果的时候应该怎么办呢? 笔者介绍下面两种方法 ●Callback  回调一般是异步处理的一种技术。一个回调是被传递到并且执行完该方法。 这种方式只能异步回调,如果需要同步等待线程处理结果可以使用下面介绍的Futures import java.util.Map; public interface ICallback { public void callback(Map<String, Object> params); }   import java.util.HashMap; import java.util.Map; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class NettyTest { static ExecutorService es = Executors.newFixedThreadPool(2); public static void doStm(final ICallback callback) { // 初始化一个线程 Thread t = new Thread() { public void run() …

nginx.conf说明

user skye ttxy;  # User and Group, 用户及组别 worker_processes 1;  # worker进程数目, 可选择具体数目或者auto error_log /usr/local/var/log/nginx/error.log warn;  # 设置error日志目录, 建议设置绝对地址.  pid /usr/local/var/run/nginx.pid;  # 设置nginx.pid路径, 用户权限配置可读写, 建议绝对路径地址.  events { worker_connections 256;  # 设置每个worker进程最大连接数.  } http { include mime.types; default_type application/octet-stream; log_format main ‘$remote_addr – $remote_user [$time_local] “$request” ‘ ‘$status $body_bytes_sent “$http_referer” ‘ ‘”$http_user_agent” “$http_x_forwarded_for”‘; access_log /usr/local/var/log/nginx/access.log main;  …

lsof 常用命令

原文地址: Lsof 是遵从Unix 哲学的典范,它只做一件事情,并且做的相当完美——它可以列出某个进程打开的所有文件信息。打开的文件可能是普通的文件,目录,NFS文件,块文件,字符文件,共享库,常规管道,明明管道,符号链接,Socket流,网络Socket,UNIX域Socket,以及其它更多。因为Unix系统中几乎所有东西都是文件,你可以想象lsof该有多有用。   如何使用lsof? 这篇文章中我会尽力列举我能想到的所有lsof的用法,让我们先从最简单的开始(或许你已经知道了),然后逐渐增加复杂度: 列出所有打开的文件 # lsof 不带任何参数运行lsof会列出所有进程打开的所有文件。 找出谁在使用某个文件 # lsof /path/to/file 只需要执行文件的路径,lsof就会列出所有使用这个文件的进程,你也可以列出多个文件,lsof会列出所有使用这些文件的进程。 你也可以一次制定多个文件: # lsof /path/to/file1 /path/to/file2 递归查找某个目录中所有打开的文件 # lsof +D /usr/lib 加上+D参数,lsof会对指定目录进行递归查找,注意这个参数要比grep版本慢: # lsof | grep ‘/usr/lib’ 之所以慢是因为+D首先查找所有的文件,然后一次性输出。 列出某个用户打开的所有文件 # lsof -u pkrumins -u选项限定只列出所有被用户pkrumins打开的文件,你可以通过逗号指定多个用户: # lsof -u rms,root 这条命令会列出所有rms和root用户打开的文件。 你也可以像下面这样使用多个-u做同样的事情: # lsof -u rms -u root 查找某个程序打开的所有文件 # lsof -c …

nginx & php-fpm 常用命令

写在一切以前!!! MacOS自带php, php-fpm   sudo nginx #打开 nginx nginx -s reload|reopen|stop|quit #重新加载配置|重启|停止|退出 nginx nginx -t #测试配置是否有语法错误 nginx [-?hvVtq] [-s signal] [-c filename] [-p prefix] [-g directives] -?,-h : 打开帮助信息 -v : 显示版本信息并退出 -V : 显示版本和配置选项信息,然后退出 -t : 检测配置文件是否有语法错误,然后退出 -q : 在检测配置文件期间屏蔽非错误信息 -s signal : 给一个 nginx 主进程发送信号:stop(停止), quit(退出), reopen(重启), reload(重新加载配置文件) -p prefix : 设置前缀路径(默认是:/usr/local/Cellar/nginx/1.2.6/) -c …