2017-12-07 25 views
1

mingw에서 Intel IPP의 2018 버전을 사용하려고하는데 인텔이 내 프로그램에 제공하는 .lib를 연결하는 데 문제가 있습니다. 내가 컴파일하고 프로그램은 메이크 여기 https://software.intel.com/en-us/ipp-dev-guide-building-intel-ipp-applicationsIPP 2018과 mingw의 연결

에서 IPP 예입니다 :

HDIR = "C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2018.1.156\windows\ipp\include" 
LDADD = "C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2018.1.156\windows\ipp\lib\intel64_win" 
SOURCES= test.cpp 
OBJECTS1=$(patsubst %.cpp,%.o,$(SOURCES)) 
OBJECTS=$(patsubst %.c,%.o,$(OBJECTS1)) 

all debug profile static depend: $(OBJECTS) 
    g++ -o test.exe test.o $(CXXFLAGS) -L$(LDADD) -lippcc -lippi -lipps -lippcore -lm 


%.o: %.cpp 
    g++ -c $< -I $(HDIR) $(CXXFLAGS) 

%.o: %.c 
    g++ -c $< -I $(HDIR) $(CXXFLAGS) 

clean: 
    rm -f *.o 

여기에 GCC 출력입니다 :

g++ -c test.cpp -I "C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_ 
2018.1.156\windows\ipp\include" 
g++ -o test.exe test.o -L"C:\Program Files (x86)\IntelSWTools\compilers_and_lib 
raries_2018.1.156\windows\ipp\lib\intel64_win" -lippcc -lippi -lipps -lippcore - 
lm 
test.o:test.cpp:(.text+0x14): undefined reference to `ippInit' 
test.o:test.cpp:(.text+0x19): undefined reference to `ippGetLibVersion' 
test.o:test.cpp:(.text+0x5f): undefined reference to `ippGetCpuFeatures' 
test.o:test.cpp:(.text+0x79): undefined reference to `ippGetEnabledCpuFeatures' 
collect2: error: ld returned 1 exit status 
Makefile:8: recipe for target 'all' failed 
make: *** [all] Error 1 

링커가 라이브러리를 찾는 것입니다,하지만 난 돈 왜 내가 정의되지 않은 참조를 얻고 있는지 이해하지 못한다. 최근 IPP 버전을 mingw로 컴파일하는 데 성공한 사람이 있습니까?

답변

0

.lib 대신 .dll에 연결하고 dll의 32 비트 버전을 사용하여 해결했습니다. (내 gcc는 64 비트 였지만 그렇지 않았습니다.)

정확한 경로는 라이브러리 링커를 수득하는 단계이다 :

LDADD = "C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2018.1.156\windows\redist\ia32_win\ipp" 

(가 32 비트를 사용하는 경우)