标签: linux-toolchain

交叉编译内核模块

我正在尝试在我的intel x86主机上为ARM体系结构交叉编译helloworld内核(2.6.x)模块.

ARM的代码源工具链位于:/ home/ravi/workspace/hawk/arm-2009q3

内核源代码位于:/ home/ravi/workspace/hawk/linux-omapl1

我的Makefile:

ARCH=arm
CROSS_COMPILE=arm-none-linux-gnueabi
obj-m := Hello.o
KDIR := /home/ravi/workspace/hawk/linux-omapl1
PWD := $(shell pwd)
default:
          $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
clean:
          $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) clean
Run Code Online (Sandbox Code Playgroud)

当我运行make时,.ko生成的是我的主机,这意味着makefile正在调用本机编译器而不是交叉编译器.我做错了什么?交叉编译器的二进制文件在我的路径中.

makefile cross-compiling kernel-module embedded-linux linux-toolchain

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

FFMPEG for Android工具链:arm-linux-armeabi-eabi-pkg-config - 是否存在任何包含pkg-config工具的工具链

有没有人知道包含arm-linux-androideabi-pkg-config工具的ffmpeg linux arm平台的任何工具链?Android NDK不包含它.还有没有人成功为包含alsa设备的android构建ffmpeg?请注意,我的Ubuntu x86 PC上有libasound.经过非常广泛的研究访问论坛,包括ffmpeg.org,ffmpeg - nabbles,groups.google.com,包括andro和android-ndk gropus,以及一般的互联网,我没有成功找到任何似乎知道它存在的人.充其量,我读过有人说忽略它.考虑到它需要什么,我认为这是一个天真的事情.仔细检查标准ffmpeg配置脚本会显示,对于某些输入和输出设备,需要一个描述为pkg_config_default = pkg-config的工具链.此外,HAVE_LIST上的所有项目都是系统相关的.configure脚本非常清楚地说明了每个indev或outdev项所需的依赖项.显然这个工具用于验证依赖项所需的库这是 当你尝试配置ffmpeg for android时会发生什么









jasongipsyblues @ Android的主:〜/ Android的ffmpeg的/项目/ JNI $ ./configure_ffmpeg.sh
...
...
..
....
许可证:GPL版本3或更高版本创建config.mak和config.h中.. .

config.h没有变化

config.asm不变

libavutil/avconfig.h保持不变

警告:/ home/jasongipsyblues/Desktop/apps/android-ndk-r8b/toolchains/arm-linux-androideabi- 4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-pkg-config not found,library检测可能会失败.

在使用Ubuntu的PC上,pkg-config没有问题.

对于Ubuntu x86 PC的config.log文件和使用android-ndk-r8工具链的android框中的输入/输出设备alsa的一个greps,请比较以下输出

jasongipsyblues @ android-master:〜/ android-ffmpeg/Project/jni/ffmpeg $ cat config.log | grep> alsa
alsa_indev
alsa_outdev
alsa_asoundlib_h
INDEV_LIST ='alsa_indev
OUTDEV_LIST ='alsa_outdev
alsa_indev ='
yes'alsa_indev_deps ='alsa_asoundlib_h snd_pcm_htimestamp'alsa_outdev
= '是'
alsa_outdev_deps ='alsa_asoundlib_h'invvs_if_any
='alsa_indev
outdevs_if_any ='alsa_outdev
check_lib2 alsa/asoundlib.h snd_pcm_htimestamp -lasound
check_func_headers alsa/asoundlib.h …

android ffmpeg compilation static-libraries linux-toolchain

13
推荐指数
1
解决办法
8723
查看次数

ar/nm和gcc-ar/gcc-nm有什么区别?

ar,nmranlib由binutils的包中提供的.gcc-ar,gcc-nmgcc-ranlib由GCC包提供.我听说的gcc-ar,gcc-nm以及gcc-ranlib是"有效的包装"周围ar,nmranlib二进制文件分别.

是什么之间的差异的技术gcc-ar,gcc-nm以及gcc-ranlibar,nmranlib?GCC必须在其构建中提供这些二进制文件.

userland包的构建系统何时应该使用一个而不是另一个?如果用于构建userland包的工具链是基于GCC的,那么您使用哪一个(例如,arvs gcc-ar,nmvs gcc-nm)是否重要?

gcc binutils linux-toolchain

10
推荐指数
1
解决办法
3636
查看次数

使用标准的linux工具链查找/替换htmlentities?

有没有办法可以使用标准的linux工具链做以下的事情?

让我们说example.com/index.php上的源代码是:

Hello, & world! "
Run Code Online (Sandbox Code Playgroud)

我怎么能这样做......

curl -s http://example.com/index.php | htmlentities
Run Code Online (Sandbox Code Playgroud)

......将打印以下内容:

Hello, & world! "
Run Code Online (Sandbox Code Playgroud)

只使用标准的linux工具链?

linux html-entities linux-toolchain

9
推荐指数
2
解决办法
3839
查看次数

为什么在C上对动态链接符号执行指针运算时出错?

我遇到了一个奇怪的情况,即执行涉及动态链接符号的指针算法会导致错误的结果.我不确定是否只是缺少一些链接器参数或者它是否是链接器错误.有人能解释下面的例子中有什么问题吗?

考虑以下lib.c简单共享库的代码():

#include <inttypes.h>
#include <stdio.h>

uintptr_t getmask()
{
  return 0xffffffff;
}

int fn1() 
{
  return 42;
}

void fn2() 
{
  uintptr_t mask; 
  uintptr_t p;

  mask = getmask();
  p = (uintptr_t)fn1 & mask; 
  printf("mask: %08x\n", mask);
  printf("fn1:  %p\n",   fn1); 
  printf("p:    %08x\n", p);
}
Run Code Online (Sandbox Code Playgroud)

有问题的操作是地址fn1和变量之间的按位AND mask.application(app.c)只是这样调用fn2:

extern int fn2();

int main()
{
  fn2();

  return 0;
}
Run Code Online (Sandbox Code Playgroud)

它导致以下输出......

mask: ffffffff
fn1:  0x2aab43c0
p:    000003c0
Run Code Online (Sandbox Code Playgroud)

......这显然是不正确的,因为预期fn1 和的结果相同p.代码在AVR32架构上运行,编译如下:

$ avr32-linux-uclibc-gcc -Os -Wextra …
Run Code Online (Sandbox Code Playgroud)

c function-pointers dynamic-linking linux-toolchain avr32

6
推荐指数
1
解决办法
175
查看次数

什么是工具链?

我在谷歌上搜索它并得到以下结果。

工具链是一组编程工具,用于执行复杂的>软件开发任务或创建软件产品,通常是>另一个计算机程序或一组相关程序

从上面的段落中,我了解到工具链或编译器工具链用于开发任何软件产品,例如操作系统(我不确定如果我错了请纠正)

如果是这样,我目前使用的是 Ubuntu 16.04。我发现上面预装了一个编译器工具链。但是操作系统已经完全开发了,那么在构建单独的软件产品之前,这里还需要什么工具链呢?

toolchain linux-toolchain

6
推荐指数
1
解决办法
780
查看次数

Windows上的QtCreator使用CodeSourcery工具链交叉编译Linux ARM

我在Windows 7机器上安装了Qt Creator,目标是OMAP3嵌入式Linux主板.我下载了目标工具链,Sourcery-G ++ Lite for Windows,还在我的Windows机器上安装了MinGW(http://www.mingw.org/).在QT Creator中,我将CodeSourcery工具链添加为"手动"工具链,如下图所示.然后,我尝试使用此工具链构建演示Qt App'analogclock',为'analogclock'演示应用程序编辑'Projects'下的'Build Settings'.但是在第2张图片中显示的Build Settings下没有工具链.

如何使用构建选项中的Code Sourcery工具链从Qt Creator构建此演示应用程序或任何Qt应用程序?我绝对必须使用Windows来完成这个(不能使用Linux VM ...).

我相信它可能与为目标构建Qt库有关,但我不确定这是否属实或如何在Windows上执行此操作.非常感谢您的帮助和见解.

Qt Creator CodeSourcery工具链

Qt Creator构建设置

编辑:新信息 - 需要帮助配置Qt Creator:

我已经使用CodeSourcery工具链来构建Qt 4.8库而没有错误,我在http://c2143.blogspot.com/?view=classic之后在/ lib目录中有.so文件.现在我试图挂钩CodeSourcery编译器并将Qt 4.8构建到Qt Creator,这样我就可以为目标板构建一个示例应用程序.

我阅读了以下文章:http : //doc.qt.nokia.com/qtcreator-2.4/creator-project-qmake.html http://doc.qt.nokia.com/qtcreator-2.4/creator-tool-chains .html 描述如何将Qt版本的新工具链添加到Qt Creator.请参阅附件中有关我如何配置Qt Creator的图片.我正在使用Qt Creator 2.4.1.

Qt版本 工具链 Buildsettings

我收到错误,但下面没有太多信息粘贴......对此或我的配置有什么想法?

09:51:07: Running build steps for project analogclock...
09:51:07: Configuration unchanged, skipping qmake step.
09:51:07: Starting: "C:\QtSDK\mingw\bin\mingw32-make.exe" 
arm-none-linux-gnueabi-g++ -c -pipe -march=armv7-a -mtune=cortex-a8 -mthumb -mfpu=neon -mfloat-abi=softfp -Wa,-mimplicit-it=thumb -O2 -Wall -W -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I"..\qt-4.8-src\include\QtCore" -I"..\qt-4.8-src\include\QtNetwork" -I"..\qt-4.8-src\include\QtGui" -I"..\qt-4.8-src\include" -I"." …
Run Code Online (Sandbox Code Playgroud)

qt cross-compiling qt-creator toolchain linux-toolchain

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

Cmake 构建失败,CMAKE_AR-NOTFOUND(未找到 cr exe)

cmake 构建失败

CMAKE_AR-NOTFOUND cr libperfutils.a
Run Code Online (Sandbox Code Playgroud)

当我检查构建文件夹 ar 未设置时。x86_64-linux\gtest-native\1.7.0-r5\build\CMakeCache.txt

CMAKE_AR:FILEPATH=CMAKE_AR-NOTFOUND

//CXX compiler.
CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/g++
Run Code Online (Sandbox Code Playgroud)

如何在 cmake 中设置 ar?

当我看到输出下面的 cmake 配置时。cmake 自动查找 g++ & 为什么它没有检测到 ar

-- The CXX compiler identification is GNU 4.8.4
-- Check for working CXX compiler: g++
-- Check for working CXX compiler: g++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
Run Code Online (Sandbox Code Playgroud)

当我手动检查机器中的 ar 时,它可用。

/usr/bin/ar
Run Code Online (Sandbox Code Playgroud)

c++ makefile cmake linux-toolchain

5
推荐指数
2
解决办法
7231
查看次数

在没有 mpc、mpfr 和 gmp 的情况下构建 GCC

我需要使用较小版本的软件包来构建我的工具链。有没有办法通过禁用 mpc、mpfr 和 gmp 包来构建 gcc?

gcc gnu-toolchain toolchain linux-toolchain

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

寻找uniq -c替代大文件

我有一个大文件(50 GB),我想计算其中不同行的出现次数.通常我会用

sort bigfile | uniq -c
Run Code Online (Sandbox Code Playgroud)

但是文件足够大,以至于排序需要大量的时间和内存.我可以

grep -cfx 'one possible line'
Run Code Online (Sandbox Code Playgroud)

对于文件中的每个唯一行,但这意味着n为每个可能的行传递文件,这(虽然更多的内存友好)比原始行更长.

有任何想法吗?


一个相关的问题询问在大文件中找到唯一行的方法,但我正在寻找一种方法来计算每个实例的数量 - 我已经知道可能的行是什么.

bash shell gnu-toolchain uniq linux-toolchain

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

gcc 可以在不交叉编译的情况下为 Arm 生成二进制文件吗

我们是否可以配置运行在 intel x64 架构上的 gcc 来为 ARM 芯片生成二进制文件,只需将一些标志传递给 gcc,而不使用交叉编译器。

linux gcc arm gnu-toolchain linux-toolchain

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