rtems에서 powf 함수 사용 (powf에 대한 정의되지 않은 참조)

김찬

rtems 응용 프로그램에서 powf 기능을 사용하려고합니다. 내가 powf (a, b); Init () 함수 내에서 정상적으로 컴파일됩니다. 나는 다른 기능에 powf를 호출 할 때, 컴파일러는 내가 그에도 불구하고 나를 '정의되지 않은 참조 powf에'메시지 제공 #include <math.h>등을 #include <float.h>. 이벤트 파일 병합을 시도했지만 동일합니다.

#define CONFIGURE_...
#define CONFIGURE_...
#include <rtems/confdefs.h>

rtems_task Init( rtems_task_argument ignored) 
{


powf(a,b); // ok

}

int my_other_func()
{

powf(c,d); // undefined reference error..

}

무엇이 문제일까요?

편집 (추가) : 아래에 소스 코드와 메이크 파일을 추가했습니다. 컴파일 된 rtems OS 패키지는 쉘 환경 변수 RTEMS_MAKEFILE_PATH에 의해 지정됩니다.

Makefile :

include ../Makefile.base
_RAM_START = 0x60000000
XCFLAGS = -qnolinkcmds -T ../../lib/linkcmds.abts3 -D_RAM_START=$(_RAM_START)
XCFLAGS += -lm -DALDEBARAN_RTEMS

../Makefile.base :

#
#  RTEMS_MAKEFILE_PATH is typically set in an environment variable
#

PGM=${ARCH}/faster_rcnn.exe

# optional managers required
MANAGERS=all

# C source names

VPATH = ../src
VPATH += ../../../../abfrcnn/bare-c/lrn_layer

CSRCS = init.c
CSRCS += lrn_layer.c

CSRCS1 = $(notdir $(CSRCS))
COBJS_ = $(CSRCS1:.c=.o)

include $(RTEMS_MAKEFILE_PATH)/Makefile.inc
include $(RTEMS_CUSTOM)
include $(PROJECT_ROOT)/make/leaf.cfg
#XCFLAGS += -I../../include
COBJS = $(COBJS_:%=${ARCH}/%)

OBJS= $(COBJS) $(CXXOBJS) $(ASOBJS)

#all: ${ARCH} $(PGM) RUNTCL
all: ${ARCH} $(PGM)

$(PGM): $(OBJS)
    $(make-exe)

RUNTCL:
    echo 'system_init' > run.tcl
    echo 'load_image o-optimize/faster_rcnn.exe' >> run.tcl
    echo 'run $(_RAM_START)' >> run.tcl

clean:
    -$(RM) -r $(ARCH)

../src/init.c :

...
#include <math.h>

rtems_status Init(rtems_argument ignored)
{    
...
    printf(" pow(1.1,2.2) = %f\n", powf(1.1,2.2)); // <== powf compiles liks ok
    //zf_coco();

}

../../../../abfrcnn/bare-c/lrn_layer/lrn_layer.c

#include <stdio.h>
#include <math.h>

int lrn_layer(... args... )
{

 ...
            val = 1./powf((1.+a/(float)(k^2)*tmp),b); // method1
 ...
} // main ROI loop

make명령 의 결과 :

test -d o-optimize || mkdir o-optimize
sparc-ab-rtems-gcc --pipe -B/home/ckim/prj/abts/rtems-qt/rtems-4.10.99-kernel/build-rtems/rtems-package/sparc-ab-rtems/aldebaran2/lib/ -specs bsp_specs -qrtems   -Wall -qnolinkcmds -T ../../lib/linkcmds.abts3 -D_RAM_START=0x60000000 -lm -DALDEBARAN_RTEMS -O4    -mtune=v8 -msoft-float -fcommon -DTARGET_ALDEBARAN       -c   -o o-optimize/init.o ../src/init.c
../src/init.c:120:2: warning: missing braces around initializer [-Wmissing-braces]
  {0}, //   rtems_chain_control;
  ^
../src/init.c:120:2: warning: (near initialization for 'ald_sd_card_driver_table[0].queue.Chain') [-Wmissing-braces]
sparc-ab-rtems-gcc --pipe -B/home/ckim/prj/abts/rtems-qt/rtems-4.10.99-kernel/build-rtems/rtems-package/sparc-ab-rtems/aldebaran2/lib/ -specs bsp_specs -qrtems   -Wall -qnolinkcmds -T ../../lib/linkcmds.abts3 -D_RAM_START=0x60000000 -lm -DALDEBARAN_RTEMS -O4    -mtune=v8 -msoft-float -fcommon -DTARGET_ALDEBARAN       -c   -o o-optimize/lrn_layer.o ../../../../abfrcnn/bare-c/lrn_layer/lrn_layer.c
../../../../abfrcnn/bare-c/lrn_layer/lrn_layer.c: In function 'lrn_layer':
../../../../abfrcnn/bare-c/lrn_layer/lrn_layer.c:201:12: warning: 'w_idx' may be used uninitialized in this function [-Wmaybe-uninitialized]
  if (w_idx == w && h_idx == h) {
            ^
sparc-ab-rtems-gcc --pipe -B/home/ckim/prj/abts/rtems-qt/rtems-4.10.99-kernel/build-rtems/rtems-package/sparc-ab-rtems/aldebaran2/lib/ -specs bsp_specs -qrtems   -Wall -qnolinkcmds -T ../../lib/linkcmds.abts3 -D_RAM_START=0x60000000 -lm -DALDEBARAN_RTEMS -O4    -mtune=v8 -msoft-float -fcommon -DTARGET_ALDEBARAN      -L/opt/abde-rtems/lib/gcc/sparc-ab-rtems/4.8.2/soft -L/opt/abde-rtems/sparc-ab-rtems/lib/soft   -mtune=v8 -msoft-float -fcommon -DTARGET_ALDEBARAN   -o o-optimize/faster_rcnn.exe  o-optimize/init.o o-optimize/lrn_layer.o       
o-optimize/lrn_layer.o: In function `lrn_layer':
lrn_layer.c:(.text+0x4a8): undefined reference to `powf'
collect2: error: ld returned 1 exit status
make: *** [o-optimize/faster_rcnn.exe] Error 1
김찬

컴파일 프로세스는 각 개별 .c 파일의 컴파일과 최종 링크로 구성됩니다. 어떻게 든 -lmXCFLAGS를 통해 추가 된 옵션이 컴파일 명령에는 적용되지만 연결 명령에는 적용되지 않습니다. 그래서 -lm객체 목록 옵션을 추가 하여 해당 옵션이 링크 명령의 객체 목록을 자연스럽게 따르도록했습니다. (나는 -lmrtems 빌드 트리에서 변수를 찾았 기 때문에 XLDFLAG 에 추가 하는 것이 적절한 방법이라고 생각합니다 : 추가 LD 플래그). 나중에해볼 게 ..

OBJS = $ (COBJS) $ (CXXOBJS) $ (ASOBJS) -lm

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

C에서 powf () 함수를 사용할 때 오류

Eclipse의 OpenSSl 앱용 함수에 대한 정의되지 않은 참조

정적 함수에 대한 정의되지 않은 참조

정적 함수에 대한 정의되지 않은 참조

Eclipse CDT의 함수에 대한 정의되지 않은 참조

C ++의 함수에 대한 정의되지 않은 참조

main ()의 함수에 대한 정의되지 않은 참조

내 함수에 대한 정의되지 않은 참조

'함수'에 대한 정의되지 않은 참조

함수에 대한 정의되지 않은 참조를 Clion

Cgo: [C 함수]에 대한 정의되지 않은 참조

함수 호출에 대한 정의되지 않은 참조

aruco 함수에 대한 정의되지 않은 참조

함수에 대한 정의되지 않은 참조? C ++

'cusolverDn'함수에 대한 정의되지 않은 참조

portaudio 함수에 대한 gcc 정의되지 않은 참조

함수 c에 대한 정의되지 않은 참조

기존 함수에 대한 정의되지 않은 참조

함수에 대한 정의되지 않은 참조 (C ++)

C ++ : void 함수에 대한 정의되지 않은 참조

C: '함수'에 대한 정의되지 않은 참조

mq 함수에 대한 정의되지 않은 참조

Makefile 및 GTest를 사용하는 함수에 대한 정의되지 않은 참조

Zenlib 오류 : typedef를 사용하는 Open 함수 호출에 대한 정의되지 않은 참조

C 및 C ++ 혼합을 사용하는 함수에 대한 정의되지 않은 참조

MinGW를 사용하는 여러 함수에 대한 SDL2 정의되지 않은 참조

컴파일러에서 허용하는 함수에 대한 정의되지 않은 참조

`_main_entry' 함수에서 `main'에 대한 정의되지 않은 참조

commonLISP에서 함수에 대한 정의되지 않은 참조 가져 오기

TOP 리스트

  1. 1

    JNDI를 사용하여 Spring Boot에서 다중 데이터 소스 구성

  2. 2

    std :: regex의 일관성없는 동작

  3. 3

    JSoup javax.net.ssl.SSLHandshakeException : <url>과 일치하는 주체 대체 DNS 이름이 없습니다.

  4. 4

    PrematureCloseException : 연결이 너무 일찍 닫혔습니다.

  5. 5

    Xcode10 유효성 검사 : 이미지에 투명성이 없지만 여전히 수락되지 않습니까?

  6. 6

    정점 셰이더에서 카메라에서 개체까지의 XY 거리

  7. 7

    Ionic 2 로더가 적시에 표시되지 않음

  8. 8

    Seaborn에서 축 제목 숨기기

  9. 9

    C #에서 'System.DBNull'형식의 개체를 'System.String'형식으로 캐스팅 할 수 없습니다.

  10. 10

    복사 / 붙여 넣기 비활성화

  11. 11

    ArrayBufferLike의 typescript 정의의 깊은 의미

  12. 12

    Google Play Console에서 '예기치 않은 오류가 발생했습니다. 나중에 다시 시도해주세요. (7100000)'오류를 수정하는 방법은 무엇입니까?

  13. 13

    Kubernetes Horizontal Pod Autoscaler (HPA) 테스트

  14. 14

    jfreecharts에서 x 및 y 축 선을 조정하는 방법

  15. 15

    PRNG 기간보다 순열이 더 많은 목록을 무작위로 섞는 방법은 무엇입니까?

  16. 16

    C # HttpWebRequest 기본 연결이 닫혔습니다. 전송시 예기치 않은 오류가 발생했습니다.

  17. 17

    다음 컨트롤이 추가되었지만 사용할 수 없습니다.

  18. 18

    잘못된 구성 개체입니다. Webpack이 Angular의 API 스키마와 일치하지 않는 구성 개체를 사용하여 초기화되었습니다.

  19. 19

    Android Kotlin은 다른 활동에서 함수를 호출합니다.

  20. 20

    R의 마침표와 숫자 사이에 문자열 삽입

  21. 21

    Assets의 BitmapFactory.decodeStream이 Android 7에서 null을 반환합니다.

뜨겁다태그

보관