我使用here指令交叉编译Dart运行时。
我已按指定安装了所有依赖项。我还用必要的工具链克隆了git存储库。
我使用此命令运行运行时编译:
./tools/build.py -m release -a arm --toolchain=../tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf runtime
编译开始没有问题,然后它停止并出现此错误:
LINK(target) out/ReleaseXARM/libdart_dependency_helper.target
CXX(host) out/ReleaseXARM/obj.host/libdart_lib_withcore/runtime/vm/bootstrap.o
In file included from /usr/include/sys/socket.h:38:0,
from /usr/include/netinet/in.h:23,
from /usr/include/arpa/inet.h:22,
from runtime/platform/globals.h:56,
from runtime/platform/assert.h:16,
from runtime/vm/allocation.h:8,
from runtime/vm/bootstrap.h:9,
from runtime/vm/bootstrap.cc:5:
/usr/include/bits/socket.h:345:24: fatal error: asm/socket.h: No such file or directory
#include <asm/socket.h>
^
compilation terminated.
CXX(host) out/ReleaseXARM/obj.host/libdart_lib_withcore/gen/async_gen.o
In file included from /usr/include/sys/socket.h:38:0,
from /usr/include/netinet/in.h:23,
from /usr/include/arpa/inet.h:22,
from runtime/platform/globals.h:56,
from runtime/platform/assert.h:16,
from runtime/vm/allocation.h:8,
from runtime/vm/bootstrap.h:9,
from out/ReleaseXARM/obj/gen/async_gen.cc:5:
/usr/include/bits/socket.h:345:24: fatal error: asm/socket.h: No such file or directory
#include <asm/socket.h>
^
compilation terminated.
runtime/libdart_lib_withcore.host.mk:978: recipe for target 'out/ReleaseXARM/obj.host/libdart_lib_withcore/runtime/vm/bootstrap.o' failed
make: *** [out/ReleaseXARM/obj.host/libdart_lib_withcore/runtime/vm/bootstrap.o] Error 1
make: *** Waiting for unfinished jobs....
runtime/libdart_lib_withcore.host.mk:986: recipe for target 'out/ReleaseXARM/obj.host/libdart_lib_withcore/gen/async_gen.o' failed
make: *** [out/ReleaseXARM/obj.host/libdart_lib_withcore/gen/async_gen.o] Error 1
BUILD FAILED
我是否遗漏了任何依赖或包裹?
答案 0 :(得分:6)
我遇到了同样的问题。在我的ubuntu 14.04系统/ usr / include / asm上并不存在。它被称为asm-generic。我sym链接它,构建能够继续。
cd /usr/include
sudo ln -s asm-generic/ asm
之后,构建能够继续。
答案 1 :(得分:3)
这可能是因为您在没有正确设置某些包含路径的情况下尝试构建应用程序,例如在64位平台上使用32位gcc。 要解决:
sudo apt-get install gcc-multilib
答案 2 :(得分:0)
你安装了linux内核头文件吗?
答案 3 :(得分:0)
我不确定为什么会发生这种情况,但有时/usr/include/asm
会被删除。看着他们的Ubuntu x86-64工作站的我的队友发现asm符号链接是:
0 lrwxrwxrwx 1 root root 20 May 22 2013 /usr/include/asm -> x86_64-linux-gnu/asm
重新创建它的命令是:
$ cd /usr/include
$ sudo ln -s x86_64-linux-gnu/asm asm
/usr/include/asm-generic
中的文件有时(但不总是)等同于x86-64特定目录中的文件;因此很难推荐将其作为解决方法进行符号化。