ubuntu下yael库调用与编译示例

前端之家收集整理的这篇文章主要介绍了ubuntu下yael库调用与编译示例前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

前言@H_403_2@

yael提供了非常全且方便的feature向量数据上的基本运算,包括nn,vector,heap,kmeans(hkm),gmm,sorting,vlad 等等,见下图yael的主要module和底层文件列表。之前已在ubuntu系统(14.04)上安装好了yael库(v438),发现写c/c++代码调用及编译器来非常简单,特此给出一个示例。


部署示例@H_403_2@

例如,写一个程序,打算调用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

效果如图:


原文链接:https://www.f2er.com/ubuntu/353798.html

猜你在找的Ubuntu相关文章