OpenVC静态编译

      开始要要在OpenCV下面编译生成静态链接库。有个比较方便的方法就是,举个例子:cxcore这个文件夹,Release下面它编译成的为cxcore.lib。这个时候我们可以在他的同级目录下面新建一个文件夹cxcorel,新建一个静态库。

     

     

      然后把cxcore里面的所有文件都拷贝过来。复制cxcore的源程序和头文件到cxcorel里面,然后在项目属性里面也和cxcore一致。不同的是要注意生成lib的路径,这个主要是方便后面程序的配置,就不用在单独指定静态库的路径了。在属性设置里面主要包括下面中的内容:

      

      

      

      

       这时,就可以编译生成一个cxcorel.lib的静态链接库了,按照这种方法可以快速的生成其它的静态库。

       其中在编译highguil.lib的时候,也编译出来了但是链接的时候出现错误,提示无法解析的运算符。看了下错误的提示,主要的原因是由于按照highgui项目配置的时候,在包含目录里面少加了一个路径。现在放出来,方便大家参考。

       C:/OpenCV/otherlibs/_graphics/include/jasper/

       这个时候剩下的工作就是把这些静态库编译到exe中,使得这个程序文件可以单独的运行而不需要其它的链接库。需要注意的是:工程的项目属性要和配置的静态链接库保持一致。

       

       添加刚才配置好的静态链接库,这个时候程序就可以脱离OpenCV的动态库单独运行了。

      

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Makefile中将源代码编译静态库,你需要定义适当的规则来编译源文件并将其打包成静态库文件。以下是一个示例Makefile,演示如何将源代码编译静态库: ```makefile CC = g++ CFLAGS = -Wall -g # 静态库名称 LIBRARY = libmylibrary.a # 源文件 SRCS = file1.cpp file2.cpp # 目标文件 OBJS = $(SRCS:.cpp=.o) all: $(LIBRARY) $(LIBRARY): $(OBJS) ar rcs $@ $^ %.o: %.cpp $(CC) $(CFLAGS) -c -o $@ $< clean: rm -f $(OBJS) $(LIBRARY) ``` 在上面的示例中,`CC`变量定义了使用的编译器(这里使用`g++`),`CFLAGS`定义了编译选项(例如`-Wall`和`-g`)。 `LIBRARY`变量定义了最终生成的静态库的名称,`SRCS`变量定义了源文件的名称。 `OBJS`变量是由源文件生成的目标文件的列表。 在上述示例中,我们定义了一个名为`all`的目标,它依赖于`$(LIBRARY)`。通过运行`make all`命令,将会编译源文件并生成静态库文件。 在编译步骤中,我们使用了模式规则来生成目标文件(`%.o`)。通过运行`$(CC)`编译器并使用`-c`选项编译源文件,并将结果输出到目标文件中。 在链接步骤中,我们使用了`ar`命令将所有目标文件打包成静态库。`-rcs`选项用于创建库文件,`$@`表示目标文件(`$(LIBRARY)`),`$^`表示所有的依赖文件(目标文件)。 最后,我们定义了一个名为`clean`的目标,用于删除生成的目标文件和静态库文件。 你可以根据实际情况修改Makefile中的路径和名称,以适应你的项目。运行`make`命令将会编译源代码并生成静态库文件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值