ubuntu下yael库调用与编译示例
2017-03-27 11:20
1236 查看
前言
yael提供了非常全且方便的feature向量数据上的基本运算,包括nn, vector, heap, kmeans(hkm), gmm, sorting, vlad 等等,见下图yael的主要module和底层文件列表。之前已在ubuntu系统(14.04)上安装好了yael库(v438),发现写c/c++代码调用及编译器来非常简单,特此给出一个示例。部署示例
例如,写一个程序,打算调用yael库中的ivec_new_set(d, init_val)方法,动态生成一个d维int向量,初始值都设置成init_val。① 编写main.cpp文件如下:
#include <iostream> #include <cstdlib> // 由于yael是纯c库,因此在c++代码中需要extern extern "C"{ #include <yael/vector.h> } using namespace std; int main(void){ int d = 3; int init_val = 10; int *vec = ivec_new_set(d, init_val); for(int i = 0; i < d; i++){ cout << i << " " << vec[i] << endl; } free(vec); vec = NULL; return 0; }
② Makefile文件中只需要在编译选项中加入’-lyael’选项即可,如下:
CC = g++ CXXFLAGS = -g -O3 -Wall -Wfatal-errors -Wshadow -I/usr/local/include LDLIBS = -L/usr/lib -lyael -lm OBJ = main.o all: main main: $(OBJ) $(CC) -o $@ $^ $(LDLIBS) ############################# # Dependencies # for i in *.cpp ; do cpp -I.. -MM $i; done main.o: main.cpp .PHONY: clean clean: -rm -f $(OBJ)
③ 编译,生成
make clean make ./main
效果如图:
相关文章推荐
- ubuntu 8.10 添加系统调用函数 及 内核编译
- CORBA: ubuntu下编译omniorb并创建示例程序
- Caffe学习系列(一)Ubuntu16.04下搭建编译Caffe环境,并运行MNIST示例(仅CPU)
- VC6.0配置LUA编译环境及LUA调用C++函数的简单示例
- Ubuntu系统下实现Android工程调用独立编译的C++程序和GMP、PBC库
- Ubuntu下使用make编译c文件,不能调用sin cos 等函数问题的解决
- ubuntu10.04编译添加系统调用的内核
- Ubuntu14.10编译安装3.17.4内核及系统调用测试
- Ubuntu系统下实现Android工程调用独立编译的C++程序和GMP、PBC库
- ubuntu下make编译生成动态库,然后python调用cpp。
- Ubuntu编译调用FFmpeg so库Api方法例子
- linux的ubuntu上如何编译C和C++代码写的动态库,以及调用执行
- VC6.0配置LUA编译环境及LUA调用C++函数的简单示例
- Ubuntu环境下编译so-jni调用c语言
- 1 ubuntu下编译安装opencv2详细教程以及python调用opencv方法
- Ubuntu下编译安装OpenCV 2.4.13以及Python调用OpenCV方法
- ubuntu 12.10 x64 下编译新内核 + 系统调用方法
- 《Swift入门》ubuntu下编译运行Swift开发的Web后端示例
- 循序渐进实现仿QQ界面演示程序编译问题及MFC调用RingSDK图象库示例
- ubuntu下使用eclipse调用libpcap库编写一个小程序时出的错误:pcap.h没有参与编译