编译linux内核2.4.0时内联汇编错误

时间:2016-01-09 20:58:07

标签: gcc assembly linux-kernel inline-assembly

我正在尝试在Ubuntu 15.10 32位上编译linux内核2.4.0。我在构建时收到了这些错误:

linux / include / asm / checksum.h:161:2:错误:缺少终止"字符 linux / include / asm / checksum.h:173:3:错误:缺少终止"字符 ...

gcc抱怨的是内联汇编中的引用:

public class LocationMarker implements ClusterItem{
private final LatLng mPosition;
private final int id;

public LocationMarker(double lat, double lng, int id) {
    mPosition = new LatLng(lat, lng);
    this.id = id;
}

@Override
public LatLng getPosition() {
    return mPosition;
}

public int getId() {
    return this.id;
}

我不确定为什么会这样。是因为不兼容的gcc版本?我目前的gcc版本是 gcc(Ubuntu 5.2.1-22ubuntu2)5.2.1 20151010。

1 个答案:

答案 0 :(得分:2)

最近的gcc不支持多行字符串文字。较新的(2.4.0是古老的!)版本的内核有:

pip install --upgrade flask-mongoengine

等。过去曾支持它,例如在version 3.2中,但3.3中删除了支持:

  

预处理器不再接受多行字符串文字。它们在3.0,3.1和3.2中被弃用。