i am new with Xilinx Petalinux SDK 2016.4. I had successfully a linux operating system on the target Zybo-Z7 board. I built also a helloworld application and it's fine until now. Currently i want to test my application , which has the name test.c
, with extra one header and C-file (new.c
, new.h
).
The files test.c, new.c, new.h are located in the path:
/$Petalinux-project-dir/project-spec/meta-user/recipes-apps/test/test
test.c has the code:
#include <stdio.h>
#include "new.h"
int main(int argc, char **argv)
{
printf("Hello World!\n");
return 0;
}
new.c has the following code:
#include "new.h"
void fun(void)
{
printf("my function!\n");
}
new.h has the following single line code:
#include <stdio.h>
Makefile has the following content:
APP = test
# Add any other object files to this list below
APP_OBJS = test.o
APP_OBJS += new.o
all: build
build: $(APP)
$(APP): $(APP_OBJS)
$(CC) $(LDFLAGS) -o $@ $(APP_OBJS) $(LDLIBS)
clean:
$(RM) $(APP) $(OBJS)
finally, bitbake file test.bb:
#
# This file is the test recipe.
#
SUMMARY = "Simple test application"
SECTION = "PETALINUX/apps"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
SRC_URI = "file://test.c \
file://new.c \
file://new.h \
file://Makefile \
"
S = "${WORKDIR}"
do_compile() {
oe_runmake
}
do_install() {
install -d ${D}${bindir}
install -m 0755 test ${D}${bindir}
install -m 0755 new ${D}${bindir}
}
then i tried to build the application by typing the command:
petalinux-build -c test -x build
but i am getting the following error message in the log.do_configure :
DEBUG: Executing python function sysroot_cleansstate
DEBUG: Python function sysroot_cleansstate finished
DEBUG: Executing shell function do_configure
NOTE: make clean
make: *** No rule to make target 'clean'. Stop.
petalinux-build -c test -x build
ERROR: oe_runmake failed
ERROR: Function failed: do_configure (log file is located at /$petalinux-project-directory/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/test/1.0-r0/temp/log.do_configure.7230)
i had the following in console:
petalinux-build -c test -x build
[INFO] building test
[INFO] sourcing bitbake
INFO: bitbake test -c build
Loading cache: 100% |###########################################| ETA: 00:00:00
Loaded 2942 entries from dependency cache.
Parsing recipes: 100% |#########################################| Time: 00:00:02
Parsing of 2326 .bb files complete (2292 cached, 34 parsed). 2941 targets, 196 skipped, 0 masked, 0 errors.
NOTE: Resolving any missing task queue dependencies
NOTE: Preparing RunQueue
NOTE: Checking sstate mirror object availability (for 38 objects)
NOTE: Executing SetScene Tasks
NOTE: Executing RunQueue Tasks
ERROR: test-1.0-r0 do_configure: oe_runmake failed
ERROR: test-1.0-r0 do_configure: Function failed: do_configure (log file is located at /$Petalinux-project-dir/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/test/1.0-r0/temp/log.do_configure.7230)
ERROR: Logfile of failure stored in: /$Petalinux-project-dir/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/test/1.0-r0/temp/log.do_configure.7230
Log data follows:
| DEBUG: Executing python function sysroot_cleansstate
| DEBUG: Python function sysroot_cleansstate finished
| DEBUG: Executing shell function do_configure
| NOTE: make clean
| make: *** No rule to make target 'clean'. Stop.
| ERROR: oe_runmake failed
| ERROR: Function failed: do_configure (log file is located at /$Petalinux-project-dir/build/tmp/work/cortexa9hf-neon-xilinx-linux-gnueabi/test/1.0-r0/temp/log.do_configure.7230)
ERROR: Task 5 (/$Petalinux-project-dir/project-spec/meta-user/recipes-apps/test/test.bb, do_configure) failed with exit code '1'
NOTE: Tasks Summary: Attempted 610 tasks of which 605 didn't need to be rerun and 1 failed.
Waiting for 0 running tasks to finish:
Summary: 1 task failed:
/$Petalinux-project-dir/project-spec/meta-user/recipes-apps/test/test.bb, do_configure
Summary: There were 2 ERROR messages shown, returning a non-zero exit code.
ERROR: Failed to build test
I tried: https://forums.xilinx.com/t5/Embedded-Linux/How-to-build-when-multiple-source-files-in-rootfs-of-petalinux/td-p/780949 and https://www.xilinx.com/support/answers/67189.html and also this similar problem How to build when multiple source files in rootfs in embedded linux? but it doesn't work!
can you please help me?
There is no clean
target in your makefile. Try:
APP := test
APP_OBJS := test.o new.o
.PHONY: all build clean
all: build
build: $(APP)
$(APP): $(APP_OBJS)
$(CC) $(LDFLAGS) -o $@ $(APP_OBJS) $(LDLIBS)
clean:
$(RM) $(APP) $(OBJS)