Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xively C库与ubuntu eclipse(gcc/g+;+;)32位交叉编译应用程序连接_Eclipse_Ubuntu_Xively_Beagleboneblack - Fatal编程技术网

Xively C库与ubuntu eclipse(gcc/g+;+;)32位交叉编译应用程序连接

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示例时得到的

我已经优化了运行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
    值可能不同):

  • 编译test.c,并将其与静态库链接:

    $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