2017-11-09 4 views
0

다른 디렉토리에 4 개의 파일이 있습니다. mainfun.ci가 funcion의 해상력이 write.c, config.c 내부에 존재하는 서로 다른 기능 read.cYocto 멀티 파일 컴파일

호출 오전

1. /home/Linux/NXP/XYZ/Embedded/Read/read.c 
2. /home/Linux/NXP/XYZ/Embedded/main/mainfun.c 
3. /home/Linux/NXP/XYZ/Embedded/write/write.c 
4. /home/Linux/NXP/XYZ/Embedded/config/config.c 

및 .bb 파일

"/home/Linux/NXP/yocto/jethro/yocto/source/meta-mylayer/recipes-app/mainfun/mainfun.bb" 

에 위치하고 난 단지 yocto를 사용하여 단일 파일 컴파일을 가로 질러 왔어. 그래서 내가 어떻게 컴파일하고 "XYZ_app"exicutable을 생성 할 수 있는지 .bb 파일을 써주세요.

여기에 내가 .bb 내가 작성한 파일 만

DESCRIPTION = "multiple file compilation" 
PR = "r0" 
LICENSE = "CLOSED" 

SRC_URI += "file://home/Linux/NXP/XYZ/Embedded/ \ 
      " 

S = "${WORKDIR}" 

do_compile() { 
${CC} ${CFLAGS} ${LDFLAGS} --static -c ${WORKDIR}}/home/Linux/NXP/XYZ/Embedded/read/read.c 
${CC} ${CFLAGS} ${LDFLAGS} --static -c ${WORKDIR}}/home/Linux/NXP/XYZ/Embedded/write/write.c 
${CC} ${CFLAGS} ${LDFLAGS} --static -c ${WORKDIR}}/home/Linux/NXP/XYZ/Embedded/conf/conf.c 
${CC} ${CFLAGS} ${LDFLAGS} --static -c ${WORKDIR}}/home/Linux/NXP/XYZ/Embedded/mainfun/mainfun.c 
    ${CC} ${CFLAGS} ${LDFLAGS} --static ${WORKDIR} /home/Linux/NXP/XYZ/Embedded/Read/read.o /home/Linux/NXP/XYZ/Embedded/write/write.o /home/Linux/NXP/XYZ/Embedded/conf/conf.o /home/Linux/NXP/XYZ/Embedded/mainfun/mainfun.o -c XYZ_App 
} 

do_install() { 

    install -m 0755 -d ${D}${bindir} 
    install -m 0755 ${S}/XYZ_App ${D}${bindir} 
} 

감사합니다, Bhargav Jayswal 작동하지 않음을 부착

조리법에 소스 파일을 직접 컴파일 테스트/비상 솔루션은 최고

답변

1

. 약간만 진보 된 경우에도 올바른 방법은 모든 종류의 빌드 시스템을 사용하는 것입니다.

직접 OpenEmbedded에서 지원하는 사람들은 (다른 사람의 사이에) 포함

  • 메이크
  • Autotools가
  • CMake는

다음은 이러한 시스템에 대한 조리법의 몇 가지에 대한 예는 다음과 같습니다 http://www.yoctoproject.org/docs/2.4/dev-manual/dev-manual.html#new-recipe-testing-examples

소스를 올바르게 포장해도 나에게 도움이됩니다. 전체 bitbake 프로세스를 호출 할 필요없이 컴파일 및 응용 프로그램을 쉽게 테스트 할 수있는 방법. 그들 모두는 찬반 양론이 있으므로 더 깊이 파고 싶을 수도 있습니다.

https://developer.gnome.org/anjuta-build-tutorial/stable/create-autotools.html.en

대안은 GNU hello보고, 또한 해당 래서 : autotools를로 시작, 이것은 좋은 일이 될 것으로 보인다.

+0

친애하는 LetoThe2nd, 답장을 보내 주셔서 감사합니다. 사실 저는 이미 모든 문서를 검토했으며 표준 방법을 항상 따르는 것이 좋습니다. 호기심 때문에 나는 항상 가능한 방법을 찾으려 노력하고 있습니다. 제 질문에 대한 모범이 무엇이든 공유 할 수있어서 제게 좀 더 명확해질 수 있습니다. –

+0

사실 나는 그것을 시간 낭비라고 생각하기 때문에 완전히 그것을 해결하려고하지 않습니다. 하지만 몇 가지 지침 : 긴 pathes 멀리 벗겨, 만약 당신이 실제로 조리법 소스와 함께 다음 그들은 또한 파일 디렉토리, 기계에 어떤 임의의 경로에 있어야 옆에 있어야합니다. 그리고 링크 단계에서, 파일 시스템의 어딘가에 절대적인 힘을주는 방법을 사용하고 있습니다. 이것은 가능한 한 깨지기 쉽습니다. – LetoThe2nd