Eclipse和Linaro交叉编译并配置链接库文件

1.在windows环境下,使用Eclipse和gcc-Linaro工具链,对BeagleBone进行交叉编译和远程部署

链接:
https://blog.csdn.net/zsy19881226/article/details/46952535
http://beaglebone.globalmultimedia.in/(英文原版)

2.动态链接库的制作及配置

硬件:树莓派开发板、VC相机
参考链接:http://www.cnblogs.com/skynet/p/3372855.html

2.1 制作动态链接库

2.1.1编写一个类

DynamicMath.h

#pragma once

class DynamicMath
{
public:
    DynamicMath(void);
    ~DynamicMath(void);

    static double add(double a, double b);//加法
    static double sub(double a, double b);//减法
    static double mul(double a, double b);//乘法
    static double div(double a, double b);//除法

    void print();
};

DynamicMath.cpp

#include "DynamicMath.h"
#include <iostream>

DynamicMath::DynamicMath()
{
}

DynamicMath::~DynamicMath()
{
}

double DynamicMath::add(double a, double b)
{
    return a + b;
}

double DynamicMath::sub(double a, double b)
{
    return a - b;
}

double DynamicMath::mul(double a, double b)
{
    return a*b;
}

double DynamicMath::div(double a, double b)
{
    if (b != 0){
        return a / b;
    }
    else
    {
        return -1000000000000000.0;
    }
}

void DynamicMath::print()
{
    std::cout << "dynamic math library" << std::endl;
}

2.1.2制作动态链接库

命令:
    g++ -fPIC -c DynamicMath.h DynamicMath.cpp
    /**
-fPIC 创建与地址无关的编译程序(pic,position independent code),是为了能够在多个应用程序间共享。不加fPIC编译出来的so,是要再加载时根据加载到的位置再次重定位的.(因为它里面的代码并不是位置无关代码)如果被多个应用程序共同使用,那么它们必须每个程序维护一份so的代码副本了.(因为so被每个程序加载的位置都不同,显然这些重定位后的代码也不同,当然不能共享)

*/
如此生成DynamicMath.o文件
命令:
g++ -shared -o libdynmath.so DynamicMath.o
-shared指定生成动态链接库。

如此生成libdynmath.so文件 .so为linux下动态链接库文件后缀名,在linux下链接库(无论静态还是动态)文件名要规范化增加前缀lib。

将生成的.so文件和.h文件考入PC端文件夹下

Include下放头文件 lib下放库文件

2.2 eclipse配置

在eclipse完成配置,编译完后将执行文件考入VC相机中直接运行。

2.2.1 配置

(1)首先选择release模式;

(2)右击项目->选择properties->c/c++ Build->setting
(3)配置库文件
选择 Cross G++ Compiler->includes

(4)配置链接库
选择Cross G++ Linker->Libraris

注:链接库文件写成dynmath(全名为libdymath.so)编译时,编译器会自动识别,添加lib头,直接写成libdymath.so时,编译时报错了。

2.2 导入VC相机
将程序导入VC相机文件夹下,同时将libdymath.so文件导入VC++相机 /usr/bin文件夹下,否则程序运行报错。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值