我正在尝试在我的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
有没有人知道包含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 …
ar,nm和ranlib由binutils的包中提供的.gcc-ar,gcc-nm和gcc-ranlib由GCC包提供.我听说的gcc-ar,gcc-nm以及gcc-ranlib是"有效的包装"周围ar,nm和ranlib二进制文件分别.
是什么之间的差异的技术gcc-ar,gcc-nm以及gcc-ranlib与ar,nm和ranlib?GCC必须在其构建中提供这些二进制文件.
userland包的构建系统何时应该使用一个而不是另一个?如果用于构建userland包的工具链是基于GCC的,那么您使用哪一个(例如,arvs gcc-ar,nmvs gcc-nm)是否重要?
有没有办法可以使用标准的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工具链?
我遇到了一个奇怪的情况,即执行涉及动态链接符号的指针算法会导致错误的结果.我不确定是否只是缺少一些链接器参数或者它是否是链接器错误.有人能解释下面的例子中有什么问题吗?
考虑以下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) 我在谷歌上搜索它并得到以下结果。
工具链是一组编程工具,用于执行复杂的>软件开发任务或创建软件产品,通常是>另一个计算机程序或一组相关程序
从上面的段落中,我了解到工具链或编译器工具链用于开发任何软件产品,例如操作系统(我不确定如果我错了请纠正)
如果是这样,我目前使用的是 Ubuntu 16.04。我发现上面预装了一个编译器工具链。但是操作系统已经完全开发了,那么在构建单独的软件产品之前,这里还需要什么工具链呢?
我在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 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.

我收到错误,但下面没有太多信息粘贴......对此或我的配置有什么想法?
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) 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) 我需要使用较小版本的软件包来构建我的工具链。有没有办法通过禁用 mpc、mpfr 和 gmp 包来构建 gcc?
我有一个大文件(50 GB),我想计算其中不同行的出现次数.通常我会用
sort bigfile | uniq -c
Run Code Online (Sandbox Code Playgroud)
但是文件足够大,以至于排序需要大量的时间和内存.我可以
grep -cfx 'one possible line'
Run Code Online (Sandbox Code Playgroud)
对于文件中的每个唯一行,但这意味着n为每个可能的行传递文件,这(虽然更多的内存友好)比原始行更长.
有任何想法吗?
一个相关的问题询问在大文件中找到唯一行的方法,但我正在寻找一种方法来计算每个实例的数量 - 我已经知道可能的行是什么.
我们是否可以配置运行在 intel x64 架构上的 gcc 来为 ARM 芯片生成二进制文件,只需将一些标志传递给 gcc,而不使用交叉编译器。