Малина pi из дерева, использующая растение Raspbian [duplicate]

Ссылка NullReferenceException или Object, не установленная на экземпляр объекта, возникает, когда объект класса, который вы пытаетесь использовать, не создается. Например:

Предположим, что у вас есть класс с именем Student.

public class Student
{
    private string FirstName;
    private string LastName;
    public string GetFullName()
    {
        return FirstName + LastName;
    }
}

Теперь рассмотрим другой класс, в котором вы пытаетесь получить полное имя учащегося.

public class StudentInfo
{      
    public string GetStudentName()
    {
        Student s;
        string fullname = s.GetFullName();
        return fullname;
    }        
}

Как видно из вышеприведенного кода, оператор Student s - объявляет только переменную типа Student, обратите внимание, что класс Student не создается в этой точке. Следовательно, когда выполняется выполнение инструкции s.GetFullName (), она выкинет исключение NullReferenceException.

28
задан ysth 27 August 2010 в 23:08
поделиться

6 ответов

Помещение ARCH и CROSS_COMPILE в Makefile не работает. Вам нужно поместить их в командной строке:

make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-
30
ответ дан JayM 24 August 2018 в 21:59
поделиться

вы можете попробовать, вы забыли добавить ARCH и CROSS_COMPILE в значение по умолчанию и очистить

ARCH=arm
COMPILER=arm-none-linux-gnueabi
obj-m := Hello.o
KERNELDIR := /home/ravi/workspace/hawk/linux-omapl1
PWD := $(shell pwd)
default:
    $(MAKE) -C $(KERNELDIR) M=$(PWD) ARCH=$(ARCH) CROSS_COMPILE=$(COMPILER) modules

clean:
    $(MAKE) -C $(KERNELDIR) M=$(PWD) ARCH=$(ARCH) clean
5
ответ дан Albert Chen 24 August 2018 в 21:59
поделиться
MODULES := hola_kern.o

#guest architecture
ARCH := arm

CROSS_COMPILE := arm-linux-gnueabi-
obj-m := $(MODULES)

#path of the arm compiled kernel
ROOTDIR := /home/aldo/c/proyectos/prefixa/work/kernels/linux-omap-5f0a6e2

MAKEARCH := $(MAKE) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE)

all: modules
modules:
    $(MAKEARCH) -C $(ROOTDIR) M=${shell pwd} modules

clean:
    $(MAKEARCH) -C $(ROOTDIR) M=${shell pwd} clean
-2
ответ дан Bartosz Moczulski 24 August 2018 в 21:59
поделиться

добавление export в конце ваших объявлений переменных Makefile сделает их доступными для подоболочек. и добавьте тире к префиксу CROSS_COMPILE в качестве JayM , а M вместо SUBDIRS в качестве ответа user502515 .

и обычно полезно использовать :=, а не = в Makefile, поэтому переменная получает интерполяцию только один раз. действительно, в данном конкретном случае это не имеет значения.

ARCH := arm
CROSS_COMPILE := arm-none-linux-gnueabi-
obj-m := Hello.o
KDIR := /home/ravi/workspace/hawk/linux-omapl1
PWD := $(shell pwd)
export
default:
          $(MAKE) -C $(KDIR) M=$(PWD) modules
clean:
          $(MAKE) -C $(KDIR) M=$(PWD) clean
0
ответ дан jcomeau_ictx 24 August 2018 в 21:59
поделиться

Заменить

ARCH = arm CROSS_COMPILE = arm-none-linux-gnueabi

на

export ARCH : = arm export CROSS_COMPILE: = arm-none-linux-gnueabi -

это также будет работать, если вы не хотите давать эту командную строку параметров каждый раз.

17
ответ дан raj_gt1 24 August 2018 в 21:59
поделиться

Sidenote: SUBDIRS= устарел в пользу M=.

6
ответ дан user502515 24 August 2018 в 21:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: