linux下eclipse用自定义Makefile交叉编译

eclipse的安装就不介绍了,大家自行安装,下面进入正题.   

一)打开eclipse,新建个C或C++工程

建一个Makefile project,再把目前的原代码与写好的makefile复制到已建好的工程目录下,按F5刷新就可以把代码加入工程中

二,点击project->properties,选择c/c++build中的Environment ,添加PATH跟系统的PATH一样,这个目的我们是要把交叉编译器的路径加到PATH中.如果已有PATH,看有没有交叉编译器的路径,有的话增加即可.

这样我们就算成功了,可以按Build All试一试,如果你的Makefile没有all这个指令的话,要新建一个make target,总之保证你的编辑是有效的.

    注意:不过,在20160503号我又试了一次,现在变的更加简单,只要建立 一个makefile project with exiting code,就可以了,也不能设置其他的。

转载于:https://my.oschina.net/peterlie/blog/521972

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以回答你关于在 Linux NDK 中交叉编译 SO 库的问题。 在交叉编译 SO 库之前,你需要先设置交叉编译环境。你可以使用以下命令来设置交叉编译环境: ``` ndk-build APP_ABI=armeabi-v7a NDK_TOOLCHAIN_VERSION=clang ``` 在这个命令中,`APP_ABI` 变量用来指定你要交叉编译的 ABI,这里我们选择了 `armeabi-v7a`,你可以根据你的需求选择其他 ABI。`NDK_TOOLCHAIN_VERSION` 变量用来指定你要使用的交叉编译工具链版本,这里我们选择了 `clang`,你也可以选择其他版本。 接下来,你需要编写一个 Makefile 文件来告诉交叉编译器如何编译你的 SO 库。下面是一个简单的例子: ``` CROSS_COMPILE = $(NDK_TOOLCHAIN_PREFIX) CC = $(CROSS_COMPILE)gcc CFLAGS = -fPIC -Wall LDFLAGS = -shared LIB_SRC = my_lib.c LIB_OBJ = $(LIB_SRC:.c=.o) LIB_SO = libmy_lib.so all: $(LIB_SO) $(LIB_SO): $(LIB_OBJ) $(CC) $(LDFLAGS) -o $@ $< $(LIB_OBJ): $(LIB_SRC) $(CC) $(CFLAGS) -c $< -o $@ clean: rm -f $(LIB_SO) $(LIB_OBJ) ``` 在这个例子中,我们首先定义了交叉编译器前缀和编译器。在 `all` 目标中,我们告诉 Makefile 编译我们的 SO 文件。在 `$(LIB_SO)` 目标中,我们使用 `$(LDFLAGS)` 来告诉编译器生成一个共享库文件。在 `$(LIB_OBJ)` 目标中,我们使用 `$(CFLAGS)` 来告诉编译器生成目标文件。 最后,你需要在 Linux NDK 中使用这个 Makefile 文件来交叉编译你的库。你可以使用以下命令来交叉编译你的库: ``` ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=./Android.mk ``` 在这个命令中,`NDK_PROJECT_PATH` 变量用来指定你的项目路径,`APP_BUILD_SCRIPT` 变量用来指定你的 Makefile 文件路径。 当编译完成后,你会在 `libs` 目录下找到你的 SO 文件。你可以将这个 SO 文件复制到你的应用程序中,并在代码中使用它。 希望这个回答能够帮助到你!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值