标签: toolchain

GCC减少二元膨胀 - 奇怪的副作用

古怪

我已经编译了Google协议缓冲区,没有使用额外的参数进行"膨胀"编译,并使用以下命令进行编译./configure CXXFLAGS="-ffunction-sections -fdata-sections".du-h透露:

120K ./bloat/bin
124K ./bloat/include/google/protobuf/io
8.0K ./bloat/include/google/protobuf/compiler/java
12K ./bloat/include/google/protobuf/compiler/python
8.0K ./bloat/include/google/protobuf/compiler/cpp
128K ./bloat/include/google/protobuf/compiler
52K ./bloat/include/google/protobuf/stubs
848K ./bloat/include/google/protobuf
852K ./bloat/include/google
856K ./bloat/include
12K ./bloat/lib/pkgconfig
37M ./bloat/lib
38M ./bloat
20K ./unbloat/bin
124K ./unbloat/include/google/protobuf/io
8.0K ./unbloat/include/google/protobuf/compiler/java
12K ./unbloat/include/google/protobuf/compiler/python
8.0K ./unbloat/include/google/protobuf/compiler/cpp
128K ./unbloat/include/google/protobuf/compiler
52K ./unbloat/include/google/protobuf/stubs
848K ./unbloat/include/google/protobuf
852K ./unbloat/include/google
856K ./unbloat/include
12K ./unbloat/lib/pkgconfig
15M ./unbloat/lib
16M ./unbloat
53M .
Run Code Online (Sandbox Code Playgroud)

深入研究:

 ls -gGh bloat/lib/
    total 37M
    -rw-r--r-- 1  13M 2010-09-07 13:57 libprotobuf.a
    -rwxr-xr-x 1  986 2010-09-07 13:57 libprotobuf.la
    -rw-r--r-- 1 …
Run Code Online (Sandbox Code Playgroud)

c++ gcc compilation toolchain

5
推荐指数
1
解决办法
1124
查看次数

使用独立工具链android arm构建本机库

我正在尝试将libraw构建为Android共享库.看起来lib太复杂了,无法与Android.mk等一起使用,或者更好:我无法做到这一点.

我尝试了使用NDK中的独立工具链的路线,但是在编译这个lib时我遇到了困难.

这是我编译lib的路径.请指出我是否犯了明显的错误:

  1. 我下载了ndk.
  2. 跑: make-standalone-toolchain.sh
  3. 添加了bin独立工具链的文件夹作为我的第一项PATH.
  4. ./configure--host=arm-linux-androideabi.这成功了
  5. make,在这里撞得非常快.
    LibRaw-0.14.4$ make
    depbase=`echo internal/dcraw_common.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
        /bin/bash ./libtool --tag=CXX   --mode=compile arm-linux-androideabi-g++ -DPACKAGE_NAME=\"LibRaw\" -DPACKAGE_TARNAME=\"libraw\" -DPACKAGE_VERSION=\"0.14.4\" -DPACKAGE_STRING=\"LibRaw\ 0.14.4\" -DPACKAGE_BUGREPORT=\"info@libraw.org\" -DPACKAGE_URL=\"http://www.libraw.org\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -I.   -I/usr/local/include  -g -O2 -MT internal/dcraw_common.lo -MD -MP -MF $depbase.Tpo -c -o internal/dcraw_common.lo internal/dcraw_common.cpp &&\
        mv -f $depbase.Tpo $depbase.Plo
    libtool: compile:  arm-linux-androideabi-g++ -DPACKAGE_NAME=\"LibRaw\" -DPACKAGE_TARNAME=\"libraw\" -DPACKAGE_VERSION=\"0.14.4\" "-DPACKAGE_STRING=\"LibRaw 0.14.4\"" -DPACKAGE_BUGREPORT=\"info@libraw.org\" -DPACKAGE_URL=\"http://www.libraw.org\" -DSTDC_HEADERS=1 …

android cross-compiling toolchain android-ndk

5
推荐指数
1
解决办法
5836
查看次数

linux应用程序被杀死

我有一个带有嵌入式Linux的"Seagate Central"NAS

$ cat /etc/*release
MontaVista Linux 6, (.dev-snapshot-20130726)
Run Code Online (Sandbox Code Playgroud)

当我尝试在这个NAS上运行我自己的应用程序时,它将被" 杀死 "而没有关于dmesg或/ var/log/messages的任何通知

$ cat /proc/cpuinfo
Processor       : ARMv6-compatible processor rev 4 (v6l)
BogoMIPS        : 279.34
Features        : swp half thumb fastmult vfp edsp java
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xb02
CPU revision    : 4

Hardware        : Cavium Networks CNS3420 Validation Board
Revision        : 0000
Serial          : 0000000000000000
Run Code Online (Sandbox Code Playgroud)

我的工具链是

Sourcery_CodeBench_Lite_for_ARM_GNU_Linux/arm-none-linux-gnueabi
Run Code Online (Sandbox Code Playgroud)

我的编译开关是

-march=armv6k -mcpu=mpcore -mfloat-abi=softfp -mfpu=vfp
Run Code Online (Sandbox Code Playgroud)

如何找出杀死我的应用程序的进程,或者我必须更改的设置?

PS:我创建了一个简单的HelloWorld应用程序,它也无法运行!

$ ldd Hello
$ …
Run Code Online (Sandbox Code Playgroud)

linux nas toolchain

5
推荐指数
1
解决办法
1823
查看次数

如何在Windows上构建GDB

如何在Windows上从源代码构建GDB(GNU调试器)?我需要构建它以便使用Python支持进行构建.我不能使用与Cygwin一起发布的那个,因为它在解释Windows上的反斜杠时遇到问题.构建需要哪些工具链--GnuWin32,MinGW等?有人可以提供有关如何执行此操作的分步说明吗?

windows debugging gdb build toolchain

5
推荐指数
1
解决办法
3377
查看次数

使用crosstool-NG的ARM交叉编译器的正确选项是什么

我正在尝试构建一个交叉编译器,以使用crosstool-NG定位在NAS盒上运行的处理器。

NAS盒是ZyXEL NSA210,有一个示例dmesg输出/proc/cpuinfo是:

Processor       : ARM926EJ-S rev 5 (v5l)
BogoMIPS        : 183.09
Features        : swp half thumb fastmult edsp java
CPU implementer : 0x41
CPU architecture: 5TEJ
CPU variant     : 0x0
CPU part        : 0x926
CPU revision    : 5
...
Hardware        : Oxsemi NAS
Revision        : 0000
Serial          : 00000d51caab2d00
Run Code Online (Sandbox Code Playgroud)

目标选项页上的选项,标志和()中的当前设置:

  • 目标架构(臂)
  • 使用MMU(是)
  • 字节序(小字节序)
  • 位数(32位)
  • 默认指令设置模式(手臂)
  • 使用EABI(是)
  • 架构级别--with-arch =()
  • 为CPU发出汇编程序--with-cpu =()
  • 为CPU调音()
  • 使用特定的FPU()
  • 浮点数(软件)
  • 目标CFLAGS()
  • 目标LDFLAGS()

我一直在'架构层面“装配:发射CPU”尝试各种组合,如arm926ej-sarmv5larmv5tej …

gcc arm cross-compiling toolchain crosstool-ng

4
推荐指数
1
解决办法
5623
查看次数

如何将专有库包含到 Yocto 生成的嵌入式 Linux 的工具链 (SDK) 中?

我正在寻找一个示例,展示如何将专有库包含到工具链中。

我们给图书馆打电话吧myLib。为此,我创建了一个食谱myLib.bb并添加了:

BBCLASSEXTEND = "native nativesdk"
Run Code Online (Sandbox Code Playgroud)

在我的“local.conf”中我添加了:

IMAGE_INSTALL_append = " myLib"
Run Code Online (Sandbox Code Playgroud)

构建 SDK 时:

$ bitbake myTarget -c populate_sdk
Run Code Online (Sandbox Code Playgroud)

它生成 SDK 的安装程序和两个清单文件。myLib仅包含在目标清单中,而不包含在主机上。如何包含myLib在主机系统上?


这个想法是,另一个人可以在他的系统上构建软件,而无需 Yocto 系统。只有使用工具链,他才能生成二进制文件,可以在评估板上传输和执行。

sdk cross-compiling toolchain bitbake yocto

4
推荐指数
1
解决办法
1535
查看次数

Flutter doctor --> Android 工具链 - 为 Android 设备开发(Android SDK 版本 32.1.0-rc1)

我有一个问题,所以我认为我正确下载了所有内容,但当我在 cmd 中输入“flutter dictir”时,我仍然收到此消息。当我按照建议运行“path/to/sdkmanager --install”cmdline-tools;latest”时,什么也没有发生。那么你能帮我下载它吗?

代码

[!] Android 工具链 - 为 Android 设备开发(Android SDK 版本 32.1.0-rc1) X cmdline-tools 组件丢失 运行path/to/sdkmanager --install "cmdline-tools;latest" 请参阅https://developer.android.com/studio/command-line了解更多详细信息。X And​​roid 许可证状态未知。运行flutter doctor --android-licenses以接受 SDK 许可证。有关更多信息,请参阅https://flutter.dev/docs/get-started/install/windows#android-setup

!医生发现了 1 类问题。

android toolchain flutter

4
推荐指数
1
解决办法
4万
查看次数

Android-NDK构建系统(构建hello-gl2)

我使用这个软件包在Archlinux上下载并安装了Android-NDK .

hello-jni按照本页面上的指南构建(并运行)示例没有问题,但如果我尝试做同样的事情,hello-gl2我会得到一些错误; 看起来它找不到一些头文件:

$ ../../ndk-build 
/usr/bin/make -f /opt/android-ndk/build/core/build-local.mk
Compile++ thumb  : gl2jni <= gl_code.cpp
/opt/android-ndk/samples/hello-gl2/jni/gl_code.cpp:22:23: error: GLES2/gl2.h: No such file or directory
/opt/android-ndk/samples/hello-gl2/jni/gl_code.cpp:23:26: error: GLES2/gl2ext.h: No such file or directory
--- SNIP ---
Run Code Online (Sandbox Code Playgroud)

GLES2/gl2.h并且GLES2/gl2ext.h是然而,存在的$(NDK)/platforms/android-4/arch-arm/usr/include/,而且看起来$(NDK)/build/core/setup-toolchain.mk应该设定包含路径.

有人遇到过同样的问题吗?我该如何编译这个样本?
那么,还有其他选项可以轻松构建Android-NDK应用程序吗?这个构建系统对我来说似乎很复杂,我更喜欢使用cmake来构建我的应用程序.

android sample build toolchain android-ndk

3
推荐指数
1
解决办法
1万
查看次数

bash:./ mips-linux-gnu-gcc:无法执行二进制文件错误

我最近mips-linux-gnu-gcc在我的linux机器上安装了一个基于i686 的crosstool.当我想编译一些代码时,它向我显示了错误.

每个安装步骤都遵循http://developer.mips.com/tools/compilers/open-source-toolchain-linux/

安装完crosstool之后,我写了一个简单的helloworld C文件,如下所示:

    #include<stdio.h>
    int main(void)
    {
        printf("Hello World!\n");
        return 0;
    }
Run Code Online (Sandbox Code Playgroud)

但是当我跑步时:

    /mips-linux-gnu-gcc hello.c -o hello -static
Run Code Online (Sandbox Code Playgroud)

编译器只是打印错误:

    bash: ./mips-linux-gnu-gcc: cannot execute binary file
Run Code Online (Sandbox Code Playgroud)

我想知道我可能在某些方面犯了一些错误,但我无法弄明白.

也许有些人可以帮助我,我对这个问题感到困惑.

gcc mips toolchain

3
推荐指数
1
解决办法
6122
查看次数

android NDK - 使独立工具链失败

我尝试在Linux 64位上制作一个独立的Android NDK工具链:

〜/ build/android-ndk-r9/build/tools $ ./make-standalone-toolchain.sh --platform = android-14 --ndk-dir =/home/user/build/android-ndk-r9 - system = linux-x86_64 --install-dir =/home/user/build/android-14-toolchain Auto-config: - toolchain = arm-linux-androideabi-4.6复制预建的二进制文件...

实际上没有文件被复制.出了点问题.NDK是最新版本的r9.如何运行脚本以便将文件复制到安装目录?

android toolchain android-ndk

3
推荐指数
1
解决办法
1万
查看次数