2017-12-07 2 views
1

Ich versuche, die 2018-Version von Intel IPP mit Mingw zu verwenden, und ich habe Probleme beim Verknüpfen der .lib, die Intel für mein Programm bereitstellt. Das Programm, das ich kompilieren bin, ist das IPP Beispiel bei https://software.intel.com/en-us/ipp-dev-guide-building-intel-ipp-applicationsVerknüpfung von IPP 2018 mit Mingw

Hier ist die Make-Datei:

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 

und hier ist der gcc-Ausgang:

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 

Der Linker ist, um die Bibliotheken zu finden, aber ich don verstehe nicht, warum ich unbestimmte Referenzen bekomme. Hat jemand Erfolg beim Zusammenstellen neuer IPP-Versionen mit Mingw gehabt?

Antwort

0

Ich löste es durch die Verknüpfung mit der. DLL statt der .Lib und die Verwendung der 32-Bit-Version der DLL (dumm, obwohl ich gcc war 64-Bit, aber es war nicht).

Der richtige Pfad an den Linker für die Bibliotheken zu geben:

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

(wenn Sie 32-Bit verwenden)