Xively C库与ubuntu eclipse(gcc/g+;+;)32位交叉编译应用程序连接
我已经优化了运行64位机器的Ubuntu13.04,以交叉编译32位ARM,并通过开发c/c++代码检查代码是否在32位ARM上成功运行(BBBlack)。现在我想要实现的是与Xively服务器的连接,从数据流更新和检索提要/数据点 因此,我想在我的Ubuntu eclipse开发环境中使用Xively中的c库它能工作吗? 是否会出现交叉编译问题?或一切正常吗? 以下是我运行>>make-csrc CC=arm-linux-eabi-gcc-AR=arm-linux-eabi-gcc示例时得到的信息Xively C库与ubuntu eclipse(gcc/g+;+;)32位交叉编译应用程序连接,eclipse,ubuntu,xively,beagleboneblack,Eclipse,Ubuntu,Xively,Beagleboneblack,我已经优化了运行64位机器的Ubuntu13.04,以交叉编译32位ARM,并通过开发c/c++代码检查代码是否在32位ARM上成功运行(BBBlack)。现在我想要实现的是与Xively服务器的连接,从数据流更新和检索提要/数据点 因此,我想在我的Ubuntu eclipse开发环境中使用Xively中的c库它能工作吗? 是否会出现交叉编译问题?或一切正常吗? 以下是我运行>>make-csrc CC=arm-linux-eabi-gcc-AR=arm-linux-eabi-gcc示例时得到的
make: *** src: No such file or directory. Stop.
nishant@Nishant-K53SC:~$ cd libxively
nishant@Nishant-K53SC:~/libxively$ make -C src CC=arm-linux-eabi-gcc AR=arm-linux-eabi-gcc libxively
make: Entering directory `/home/nishant/libxively/src'
make -C libxively
make[1]: Entering directory `/home/nishant/libxively/src/libxively'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/nishant/libxively/src/libxively'
make: Leaving directory `/home/nishant/libxively/src'
nishant@Nishant-K53SC:~/libxively$ make -C src CC=arm-linux-eabi-gcc AR=arm-linux-eabi-gcc libxively
make: Entering directory `/home/nishant/libxively/src'
make -C libxively
make[1]: Entering directory `/home/nishant/libxively/src/libxively'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/nishant/libxively/src/libxively'
make: Leaving directory `/home/nishant/libxively/src'
nishant@Nishant-K53SC:~/libxively$ make -C src CC=arm-linux-eabi-gcc AR=arm-linux-eabi-gcc examples
make: Entering directory `/home/nishant/libxively/src'
make -C examples
make[1]: Entering directory `/home/nishant/libxively/src/examples'
for dir in datapoint_delete datapoint_delete_range datastream_create datastream_delete datastream_get datastream_update feed_get feed_update; do (make -C $dir) || exit 1; done
make[2]: Entering directory `/home/nishant/libxively/src/examples/datapoint_delete'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/home/nishant/libxively/src/examples/datapoint_delete'
make[2]: Entering directory `/home/nishant/libxively/src/examples/datapoint_delete_range'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/home/nishant/libxively/src/examples/datapoint_delete_range'
make[2]: Entering directory `/home/nishant/libxively/src/examples/datastream_create'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/home/nishant/libxively/src/examples/datastream_create'
make[2]: Entering directory `/home/nishant/libxively/src/examples/datastream_delete'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/home/nishant/libxively/src/examples/datastream_delete'
make[2]: Entering directory `/home/nishant/libxively/src/examples/datastream_get'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/home/nishant/libxively/src/examples/datastream_get'
make[2]: Entering directory `/home/nishant/libxively/src/examples/datastream_update'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/home/nishant/libxively/src/examples/datastream_update'
make[2]: Entering directory `/home/nishant/libxively/src/examples/feed_get'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/home/nishant/libxively/src/examples/feed_get'
make[2]: Entering directory `/home/nishant/libxively/src/examples/feed_update'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/home/nishant/libxively/src/examples/feed_update'
make[1]: Leaving directory `/home/nishant/libxively/src/examples'
make: Leaving directory `/home/nishant/libxively/src'
使用库生成时更新错误:
为项目测试构建配置调试**
make all
Building file: ../src/Test.cpp
Invoking: GCC C++ Compiler
arm-linux-gnueabi-g++ -I/usr/arm-linux-gnueabi/include/c++/4.7.3 -I/home/nishant/libxively/src/libxively -I/usr/arm-linux-gnueabi/include/c++/4.7.3/bits -I/usr/arm-linux-gnueabi/include/c++/4.7.3/ext -I/usr/arm-linux-gnueabi/include/c++/4.7.3/arm-linux-gnueabi -I/usr/arm-linux-gnueabi/include/c++/4.7.3/backward -I/usr/arm-linux-gnueabi/include/c++/4.7.3/decimal -includexively.h -includexi_helpers.h -includexi_err.h -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"src/Test.d" -MT"src/Test.d" -o "src/Test.o" "../src/Test.cpp"
/home/nishant/workspace/Test/src/libxively.a: could not read symbols: File format not recognized
Finished building: ../src/Test.cpp
collect2: error: ld returned 1 exit status
Building target: Test
make: *** [Test] Error 1
Invoking: GCC C++ Linker
arm-linux-gnueabi-g++ -L/home/nishant/workspace/Test/src -L/usr/arm-linux-gnueabi/lib -o "Test" ./src/Test.o -lxively
**** Build Finished ****
Xively C库应适用于任何32位和64位POSIX操作系统,以及带有lwIP的各种RTO 要使用
arm linux eabi gcc
交叉编译库,需要在顶级目录中运行以下命令:
make -C src CC=arm-linux-eabi-gcc AR=arm-linux-eabi-gcc libxively
make -C src CC=arm-linux-eabi-gcc AR=arm-linux-eabi-gcc examples
详细说明
下面我将描述如何编译一个简单的示例C程序,并将其与Xively库静态链接。这应该提供足够的背景信息。尽管如此,我不能提供关于如何修复EclipseIDE的信息,因为我怀疑这是可能的
mkdir hello_xively
cd hello_xively
git clone --recursive https://github.com/xively/libxively
test.c
文件,如图所示:
#include "xively.h"
int main() {
xi_context_t* ctx = xi_create_context( XI_HTTP, "DUMMY_API_KEY_STRING", 123 );
xi_delete_context( ctx );
return 0;
};
CC
和AR
值可能不同):
$CC test.c \
-I./libxively/src/libxively \
libxively.a -o xively_static_test
您现在可以尝试将
xively\u static\u测试
可执行文件复制到目标设备的文件系统并执行它,因为这是一个测试示例,因此不会产生任何输出。不,您可以扩展上述示例以提供所需的功能 所以我只需要做一次就可以了,这个Xively C库已经配置好了吗?并以Conevential的方式将其添加到linux?好吧,如果您不对库进行更改,那么您就不需要重新构建它。否则,您需要教导您的IDE这是干净构建的一部分。因此,通常您希望使您的IDE链接到静态库,您可以在libxively/src/obj/libxively.a
下找到它。我的意思是什么样的库。C语言的扩展?我运行了make-C src CC=arm linux eabi gcc AR=arm linux eabi gcc libxively和make-C src CC=arm linux eabi gcc AR=arm linux eabi gcc示例,但感觉这些语句已经完成了我在libxively目录中运行“makeall”,在上面添加了返回提示
$CC test.c \
-I./libxively/src/libxively \
libxively.a -o xively_static_test