Gracenote GNSDK在linux上编译

时间:2016-01-22 10:51:03

标签: linux gcc codeblocks gracenote intel-ipp

我想在linux上使用GNSDK(Gracenote SDK)编译应用程序,但是我有错误(我使用Code :: Blocks)。我不想使用带有musicid_file_trackid功能的gracenote指纹。

我在Windows上使用Visual Studio编译工作正常,但在Linux上编译(Code :: Blocks with GNU GCC Compiler)。

我有这个问题:

||=== Build: Release in Gracenote (compiler: GNU GCC Compiler) ===|
gcsl_fingerprint.c|| référence indéfinie vers « ippStaticInit »|
gn_patchfp.c|| référence indéfinie vers « ippStaticInit »|
CMFingerprinter.c|| référence indéfinie vers « ippsFree »|
CMFingerprinter.c|| référence indéfinie vers « ippsMalloc_32f »|
CMFrameManager.c|| référence indéfinie vers « ippsDCTFwdFree_32f »|
CMFrameManager.c|| référence indéfinie vers « ippsFree »|
CMFrameManager.c|| référence indéfinie vers « ippsDCTFwdInitAlloc_32f »|
CMFrameManager.c|| référence indéfinie vers « ippsDCTFwdInitAlloc_32f »|
CMFrameManager.c|| référence indéfinie vers « ippsDCTFwdGetBufSize_32f »|
CMFrameManager.c|| référence indéfinie vers « ippsMalloc_8u »|
CMFrameManager.c|| référence indéfinie vers « ippsDCTFwdGetBufSize_32f »|
CMFrameManager.c|| référence indéfinie vers « ippsMalloc_8u »|
CMFrameManager.c|| référence indéfinie vers « ippsDCTFwd_32f_I »|
CMFrameManager.c|| référence indéfinie vers « ippsDCTFwd_32f_I »|
CMHistogramEqualizer.c|| référence indéfinie vers « ippsMinMax_32f »|
CMHistogramEqualizer.c|| référence indéfinie vers « ippsMinMax_32f »|
CMHistogramEqualizer.c|| référence indéfinie vers « ippsSubC_32f_I »|
FixedFAPIFingerprinter.c|| référence indéfinie vers « ippsMalloc_32s »|
FixedFAPIFingerprinter.c|| référence indéfinie vers « ippsMalloc_32s »|
FixedFAPIFingerprinter.c|| référence indéfinie vers « ippsFFTInitAlloc_R_32s »|
FixedFAPIFingerprinter.c|| référence indéfinie vers « ippsFFTFree_R_32s »|
FixedFAPIFingerprinter.c|| référence indéfinie vers « ippsFree »|
FixedFAPIFingerprinter.c|| référence indéfinie vers « ippsFree »|
FixedFAPIFingerprinter.c|| référence indéfinie vers « ippsFFTGetBufSize_R_32s »|
FixedFAPIFingerprinter.c|| référence indéfinie vers « ippsMalloc_8u »|
FixedFAPIFingerprinter.c|| référence indéfinie vers « ippsAbs_32s_I »|
FixedFAPIFingerprinter.c|| référence indéfinie vers « ippsFree »|
FixedFAPIFingerprinter.c|| référence indéfinie vers « ippsFFTFree_R_32s »|
FixedFAPIFingerprinter.c|| référence indéfinie vers « ippsFree »|
FixedFAPIFingerprinter.c|| référence indéfinie vers « ippsFree »|
FixedFAPIFingerprinter.c|| référence indéfinie vers « ippsFree »|
FixedFAPIFingerprinter.c|| référence indéfinie vers « ippsMaxAbs_32s »|
FixedFAPIFingerprinter.c|| référence indéfinie vers « ippsLShiftC_32s_I »|
FixedFAPIFingerprinter.c|| référence indéfinie vers « ippsRShiftC_32s_I »|
FixedFAPIFingerprinter.c|| référence indéfinie vers « ippsMul_32s_ISfs »|
FixedFAPIFingerprinter.c|| référence indéfinie vers « ippsFFTFwd_RToPerm_32s_Sfs »|
FixedFAPIFingerprinter.c|| référence indéfinie vers « ippsMagSquared_32sc32s_Sfs »|
FixedFAPIFingerprinter.c|| référence indéfinie vers « ippsDotProd_16s32s32s_Sfs »|
FixedFAPIFingerprinter.c|| référence indéfinie vers « ippsDotProd_16s32s32s_Sfs »|
GNDSP_Resampler.c|| référence indéfinie vers « ippsFree »|
GNDSP_Resampler.c|| référence indéfinie vers « ippsMalloc_32f »|
GNDSP_Resampler.c|| référence indéfinie vers « ippsDotProd_32f »|
GNDSP_Resampler.c|| référence indéfinie vers « ippsDotProd_32f »|
GNDSP_Resampler.c|| référence indéfinie vers « ippsDotProd_32f »|
GNDSP_Resampler.c|| référence indéfinie vers « ippsDotProd_32f »|
GNDSP_Resampler.c|| référence indéfinie vers « ippsDotProd_32f »|
lib_static/libgnsdk_dsp.a(GNDSP_Resampler.o):GNDSP_Resampler.c|| encore plus de références indéfinies suivent vers « ippsDotProd_32f »|
gcsl_memory_markers.c|| référence indéfinie vers « pthread_key_create »|
gcsl_memory_markers.c|| référence indéfinie vers « pthread_key_delete »|
gcsl_memory_markers.c|| référence indéfinie vers « pthread_getspecific »|
||More errors follow but not being shown.|
||Edit the max errors limit in compiler options...|
||=== Build failed: 50 error(s), 0 warning(s) (0 minute(s), 3 second(s)) ===|

Linker commaandline:

    g++ -Llib -Llib_static -o bin/Release/Gracenote obj/Release/main.o  -s -pthread  lib_static/libgnsdk_dsp.a lib_static/libgnsdk_link.a lib_static/libgnsdk_lookup_local.a lib_static/libgnsdk_lookup_localstream.a lib_static/libgnsdk_manager.a lib_static/libgnsdk_moodgrid.a lib_static/libgnsdk_musicid.a lib_static/libgnsdk_musicid_file.a lib_static/libgnsdk_musicid_stream.a lib_static/libgnsdk_playlist.a lib_static/libgnsdk_storage_sqlite.a lib_static/libgnsdk_video.a 


-------------- Build: Release in Gracenote (compiler: GNU GCC Compiler)---------------

g++ -Llib -Llib_static -o bin/Release/Gracenote obj/Release/main.o  -s -pthread  lib_static/libgnsdk_dsp.a lib_static/libgnsdk_link.a lib_static/libgnsdk_lookup_local.a lib_static/libgnsdk_lookup_localstream.a lib_static/libgnsdk_manager.a lib_static/libgnsdk_moodgrid.a lib_static/libgnsdk_musicid.a lib_static/libgnsdk_musicid_file.a lib_static/libgnsdk_musicid_stream.a lib_static/libgnsdk_playlist.a lib_static/libgnsdk_storage_sqlite.a lib_static/libgnsdk_video.a
lib_static/libgnsdk_dsp.a(gcsl_fingerprint.o): dans la fonction « _fingerprint_init_func »:
gcsl_fingerprint.c:(.text+0xa1): référence indéfinie vers « ippStaticInit »
lib_static/libgnsdk_dsp.a(gn_patchfp.o): dans la fonction « patchfp_initialize »:
gn_patchfp.c:(.text+0x5): référence indéfinie vers « ippStaticInit »
lib_static/libgnsdk_dsp.a(CMFingerprinter.o): dans la fonction « CMFP_Destroy »:
CMFingerprinter.c:(.text+0xc2): référence indéfinie vers « ippsFree »
lib_static/libgnsdk_dsp.a(CMFingerprinter.o): dans la fonction « CMFP_Create »:
CMFingerprinter.c:(.text+0x285): référence indéfinie vers « ippsMalloc_32f »
lib_static/libgnsdk_dsp.a(CMFrameManager.o): dans la fonction « CMFM_Destroy »:
CMFrameManager.c:(.text+0x211): référence indéfinie vers « ippsDCTFwdFree_32f »
CMFrameManager.c:(.text+0x231): référence indéfinie vers « ippsFree »
lib_static/libgnsdk_dsp.a(CMFrameManager.o): dans la fonction « CMFM_Create »:
CMFrameManager.c:(.text+0x34d): référence indéfinie vers « ippsDCTFwdInitAlloc_32f »
CMFrameManager.c:(.text+0x461): référence indéfinie vers « ippsDCTFwdInitAlloc_32f »
CMFrameManager.c:(.text+0x4af): référence indéfinie vers « ippsDCTFwdGetBufSize_32f »
CMFrameManager.c:(.text+0x4bf): référence indéfinie vers « ippsMalloc_8u »
CMFrameManager.c:(.text+0x4d9): référence indéfinie vers « ippsDCTFwdGetBufSize_32f »
CMFrameManager.c:(.text+0x4e5): référence indéfinie vers « ippsMalloc_8u »
lib_static/libgnsdk_dsp.a(CMFrameManager.o): dans la fonction « CMFM_AppendDualPCMData »:
CMFrameManager.c:(.text+0xe38): référence indéfinie vers « ippsDCTFwd_32f_I »
CMFrameManager.c:(.text+0xf53): référence indéfinie vers « ippsDCTFwd_32f_I »
lib_static/libgnsdk_dsp.a(CMHistogramEqualizer.o): dans la fonction « hist_eq_dual »:
CMHistogramEqualizer.c:(.text+0x152): référence indéfinie vers « ippsMinMax_32f »
CMHistogramEqualizer.c:(.text+0x169): référence indéfinie vers « ippsMinMax_32f »
CMHistogramEqualizer.c:(.text+0x2b4): référence indéfinie vers « ippsSubC_32f_I »
lib_static/libgnsdk_dsp.a(FixedFAPIFingerprinter.o): dans la fonction « FixedFAPIFingerprinterCreate »:
FixedFAPIFingerprinter.c:(.text+0x2fb): référence indéfinie vers « ippsMalloc_32s »
FixedFAPIFingerprinter.c:(.text+0x30f): référence indéfinie vers « ippsMalloc_32s »
FixedFAPIFingerprinter.c:(.text+0x34e): référence indéfinie vers « ippsFFTInitAlloc_R_32s »
FixedFAPIFingerprinter.c:(.text+0x3af): référence indéfinie vers « ippsFFTFree_R_32s »
FixedFAPIFingerprinter.c:(.text+0x3d6): référence indéfinie vers « ippsFree »
FixedFAPIFingerprinter.c:(.text+0x3e2): référence indéfinie vers « ippsFree »
FixedFAPIFingerprinter.c:(.text+0x4a7): référence indéfinie vers « ippsFFTGetBufSize_R_32s »
FixedFAPIFingerprinter.c:(.text+0x4ba): référence indéfinie vers « ippsMalloc_8u »
FixedFAPIFingerprinter.c:(.text+0x59e): référence indéfinie vers « ippsAbs_32s_I »
FixedFAPIFingerprinter.c:(.text+0x5a8): référence indéfinie vers « ippsFree »
lib_static/libgnsdk_dsp.a(FixedFAPIFingerprinter.o): dans la fonction « FixedFAPIFingerprinterDelete »:
FixedFAPIFingerprinter.c:(.text+0x67c): référence indéfinie vers « ippsFFTFree_R_32s »
FixedFAPIFingerprinter.c:(.text+0x697): référence indéfinie vers « ippsFree »
FixedFAPIFingerprinter.c:(.text+0x6a4): référence indéfinie vers « ippsFree »
FixedFAPIFingerprinter.c:(.text+0x6d1): référence indéfinie vers « ippsFree »
lib_static/libgnsdk_dsp.a(FixedFAPIFingerprinter.o): dans la fonction « ScaleToMaxQ »:
FixedFAPIFingerprinter.c:(.text+0x96d): référence indéfinie vers « ippsMaxAbs_32s »
FixedFAPIFingerprinter.c:(.text+0x9e0): référence indéfinie vers « ippsLShiftC_32s_I »
FixedFAPIFingerprinter.c:(.text+0x9fc): référence indéfinie vers « ippsRShiftC_32s_I »
lib_static/libgnsdk_dsp.a(FixedFAPIFingerprinter.o): dans la fonction « ExtractSoftSubFingerprint »:
FixedFAPIFingerprinter.c:(.text+0xad9): référence indéfinie vers « ippsMul_32s_ISfs »
FixedFAPIFingerprinter.c:(.text+0xb18): référence indéfinie vers « ippsFFTFwd_RToPerm_32s_Sfs »
FixedFAPIFingerprinter.c:(.text+0xb6b): référence indéfinie vers « ippsMagSquared_32sc32s_Sfs »
lib_static/libgnsdk_dsp.a(FixedFAPIFingerprinter.o): dans la fonction « ApplyLowPassFilter »:
FixedFAPIFingerprinter.c:(.text+0x161c): référence indéfinie vers « ippsDotProd_16s32s32s_Sfs »
lib_static/libgnsdk_dsp.a(FixedFAPIFingerprinter.o): dans la fonction « ApplyLowPassHQ »:
FixedFAPIFingerprinter.c:(.text+0x166c): référence indéfinie vers « ippsDotProd_16s32s32s_Sfs »
lib_static/libgnsdk_dsp.a(GNDSP_Resampler.o): dans la fonction « GNDSP_DestroyResampler »:
GNDSP_Resampler.c:(.text+0x41): référence indéfinie vers « ippsFree »
lib_static/libgnsdk_dsp.a(GNDSP_Resampler.o): dans la fonction « GNDSP_CreateResampler »:
GNDSP_Resampler.c:(.text+0x539): référence indéfinie vers « ippsMalloc_32f »
lib_static/libgnsdk_dsp.a(GNDSP_Resampler.o): dans la fonction « GNDSP_Resample »:
GNDSP_Resampler.c:(.text+0xa39): référence indéfinie vers « ippsDotProd_32f »
GNDSP_Resampler.c:(.text+0xa51): référence indéfinie vers « ippsDotProd_32f »
GNDSP_Resampler.c:(.text+0xa69): référence indéfinie vers « ippsDotProd_32f »
GNDSP_Resampler.c:(.text+0xa85): référence indéfinie vers « ippsDotProd_32f »
GNDSP_Resampler.c:(.text+0xacf): référence indéfinie vers « ippsDotProd_32f »
lib_static/libgnsdk_dsp.a(GNDSP_Resampler.o):GNDSP_Resampler.c:(.text+0xb31): encore plus de références indéfinies suivent vers « ippsDotProd_32f »
lib_static/libgnsdk_manager.a(gcsl_process.o): dans la fonction « gcsl_process_library_sym »:
gcsl_process.c:(.text+0x49): référence indéfinie vers « dlsym »
lib_static/libgnsdk_manager.a(gcsl_process.o): dans la fonction « gcsl_process_library_load »:
gcsl_process.c:(.text+0x262): référence indéfinie vers « dlopen »
gcsl_process.c:(.text+0x366): référence indéfinie vers « dlclose »
Process terminated with status 1 (0 minute(s), 1 second(s))
50 error(s), 0 warning(s) (0 minute(s), 1 second(s))

我该如何解决这个问题?

提前谢谢。

Vincent LEVEQUE

编辑: 我已尝试过您的推荐,但使用此链接器选项:

-lgnsdk_dsp
-lgnsdk_link
-lgnsdk_lookup_local
-lgnsdk_lookup_localstream
-lgnsdk_manager
-lgnsdk_moodgrid
-lgnsdk_musicid
-lgnsdk_musicid_file
-lgnsdk_musicid_stream
-lgnsdk_playlist
-lgnsdk_storage_sqlite
-lgnsdk_video
-lippcore
-lippcc
-lippch
-lippcv
-lippdc
-lippi
-lipps
-lippvm
-pthread

但我总是犯错:

-------------- Clean: Release in Gracenote (compiler: GNU GCC Compiler)---------------

Cleaned "Gracenote - Release"

-------------- Build: Release in Gracenote (compiler: GNU GCC Compiler)---------------

gcc -Wall -O2  -c /home/membre/codeblocks/Gracenote/main.c -o obj/Release/main.o
g++ -Llib/linux_x86-64 -Llib_static/linux_x86-64 -Lipps -o bin/Release/Gracenote obj/Release/main.o  -s -lgnsdk_dsp -lgnsdk_link -lgnsdk_lookup_local -lgnsdk_lookup_localstream -lgnsdk_manager -lgnsdk_moodgrid -lgnsdk_musicid -lgnsdk_musicid_file -lgnsdk_musicid_stream -lgnsdk_playlist -lgnsdk_storage_sqlite -lgnsdk_video -lippcore -lippcc -lippch -lippcv -lippdc -lippi -lipps -lippvm -pthread  
lib_static/linux_x86-64/libgnsdk_dsp.a(gcsl_fingerprint.o): dans la fonction « _fingerprint_init_func »:
gcsl_fingerprint.c:(.text+0xa1): référence indéfinie vers « ippStaticInit »
lib_static/linux_x86-64/libgnsdk_dsp.a(gn_patchfp.o): dans la fonction « patchfp_initialize »:
gn_patchfp.c:(.text+0x5): référence indéfinie vers « ippStaticInit »
lib_static/linux_x86-64/libgnsdk_dsp.a(CMFrameManager.o): dans la fonction « CMFM_Destroy »:
CMFrameManager.c:(.text+0x211): référence indéfinie vers « ippsDCTFwdFree_32f »
lib_static/linux_x86-64/libgnsdk_dsp.a(CMFrameManager.o): dans la fonction « CMFM_Create »:
CMFrameManager.c:(.text+0x34d): référence indéfinie vers « ippsDCTFwdInitAlloc_32f »
CMFrameManager.c:(.text+0x461): référence indéfinie vers « ippsDCTFwdInitAlloc_32f »
CMFrameManager.c:(.text+0x4af): référence indéfinie vers « ippsDCTFwdGetBufSize_32f »
CMFrameManager.c:(.text+0x4d9): référence indéfinie vers « ippsDCTFwdGetBufSize_32f »
lib_static/linux_x86-64/libgnsdk_dsp.a(FixedFAPIFingerprinter.o): dans la fonction « FixedFAPIFingerprinterCreate »:
FixedFAPIFingerprinter.c:(.text+0x34e): référence indéfinie vers « ippsFFTInitAlloc_R_32s »
FixedFAPIFingerprinter.c:(.text+0x3af): référence indéfinie vers « ippsFFTFree_R_32s »
FixedFAPIFingerprinter.c:(.text+0x4a7): référence indéfinie vers « ippsFFTGetBufSize_R_32s »
lib_static/linux_x86-64/libgnsdk_dsp.a(FixedFAPIFingerprinter.o): dans la fonction « FixedFAPIFingerprinterDelete »:
FixedFAPIFingerprinter.c:(.text+0x67c): référence indéfinie vers « ippsFFTFree_R_32s »
lib_static/linux_x86-64/libgnsdk_dsp.a(FixedFAPIFingerprinter.o): dans la fonction « ExtractSoftSubFingerprint »:
FixedFAPIFingerprinter.c:(.text+0xb18): référence indéfinie vers « ippsFFTFwd_RToPerm_32s_Sfs »
FixedFAPIFingerprinter.c:(.text+0xb6b): référence indéfinie vers « ippsMagSquared_32sc32s_Sfs »
lib_static/linux_x86-64/libgnsdk_manager.a(gcsl_process.o): dans la fonction « gcsl_process_library_sym »:
gcsl_process.c:(.text+0x49): référence indéfinie vers « dlsym »
lib_static/linux_x86-64/libgnsdk_manager.a(gcsl_process.o): dans la fonction « gcsl_process_library_load »:
gcsl_process.c:(.text+0x262): référence indéfinie vers « dlopen »
gcsl_process.c:(.text+0x366): référence indéfinie vers « dlclose »
lib_static/linux_x86-64/libgnsdk_manager.a(gcsl_process.o): dans la fonction « gcsl_process_library_free »:
gcsl_process.c:(.text+0x411): référence indéfinie vers « dlclose »
lib_static/linux_x86-64/libgnsdk_musicid_stream.a(gnsdk_musicid_stream.o): dans la fonction « gnsdk_musicidstream_channel_audio_write »:
gnsdk_musicid_stream.c:(.text+0x2982): référence indéfinie vers « gcsl_circbuf_write »
lib_static/linux_x86-64/libgnsdk_musicid_stream.a(mids_fsm.o): dans la fonction « mids_fsm_state_process_circularbuffer »:
mids_fsm.c:(.text+0x1043): référence indéfinie vers « gcsl_circbuf_size »
mids_fsm.c:(.text+0x10ec): référence indéfinie vers « gcsl_circbuf_get_newest »
lib_static/linux_x86-64/libgnsdk_musicid_stream.a(mids_internal.o): dans la fonction « audio_session_delete »:
mids_internal.c:(.text+0x527): référence indéfinie vers « gcsl_circbuf_delete »
lib_static/linux_x86-64/libgnsdk_musicid_stream.a(mids_internal.o): dans la fonction « audio_session_create »:
mids_internal.c:(.text+0x8ed): référence indéfinie vers « gcsl_circbuf_create »
lib_static/linux_x86-64/libgnsdk_storage_sqlite.a(sqlite3.o): dans la fonction « unixDlSym »:
sqlite3.c:(.text+0x4606): référence indéfinie vers « dlsym »
lib_static/linux_x86-64/libgnsdk_storage_sqlite.a(sqlite3.o): dans la fonction « unixDlError »:
sqlite3.c:(.text+0x1e4f9): référence indéfinie vers « dlerror »
lib_static/linux_x86-64/libgnsdk_storage_sqlite.a(sqlite3.o): dans la fonction « unixDlOpen »:
sqlite3.c:(.text+0x45f9): référence indéfinie vers « dlopen »
lib_static/linux_x86-64/libgnsdk_storage_sqlite.a(sqlite3.o): dans la fonction « unixDlClose »:
sqlite3.c:(.text+0x4614): référence indéfinie vers « dlclose »
ipps/libipps.a(jmp_ippsAbs_32s_I_as.o): dans la fonction « aucun symbole »:
/localdisk/commander/production/ipp901gold/linux_intel64/.build/linux/obj/intel64/ipps/emerged_compl/nonpic/dispatcher/jmp_ippsAbs_32s_I_as.s:(.text+0x1): référence indéfinie vers « ippSafeInit »
ipps/libipps.a(jmp_ippsAbs_32s_I_as.o): dans la fonction « ippsAbs_32s_I »:
/localdisk/commander/production/ipp901gold/linux_intel64/.build/linux/obj/intel64/ipps/emerged_compl/nonpic/dispatcher/jmp_ippsAbs_32s_I_as.s:(.text+0x13): référence indéfinie vers « ippJumpIndexForMergedLibs »
ipps/libipps.a(jmp_ippsDCTFwd_32f_I_as.o): dans la fonction « aucun symbole »:
/localdisk/commander/production/ipp901gold/linux_intel64/.build/linux/obj/intel64/ipps/emerged_compl/nonpic/dispatcher/jmp_ippsDCTFwd_32f_I_as.s:(.text+0x1): référence indéfinie vers « ippSafeInit »
ipps/libipps.a(jmp_ippsDCTFwd_32f_I_as.o): dans la fonction « ippsDCTFwd_32f_I »:
/localdisk/commander/production/ipp901gold/linux_intel64/.build/linux/obj/intel64/ipps/emerged_compl/nonpic/dispatcher/jmp_ippsDCTFwd_32f_I_as.s:(.text+0x13): référence indéfinie vers « ippJumpIndexForMergedLibs »
ipps/libipps.a(jmp_ippsDotProd_16s32s32s_Sfs_as.o): dans la fonction « aucun symbole »:
/localdisk/commander/production/ipp901gold/linux_intel64/.build/linux/obj/intel64/ipps/emerged_compl/nonpic/dispatcher/jmp_ippsDotProd_16s32s32s_Sfs_as.s:(.text+0x1): référence indéfinie vers « ippSafeInit »
ipps/libipps.a(jmp_ippsDotProd_16s32s32s_Sfs_as.o): dans la fonction « ippsDotProd_16s32s32s_Sfs »:
/localdisk/commander/production/ipp901gold/linux_intel64/.build/linux/obj/intel64/ipps/emerged_compl/nonpic/dispatcher/jmp_ippsDotProd_16s32s32s_Sfs_as.s:(.text+0x13): référence indéfinie vers « ippJumpIndexForMergedLibs »
ipps/libipps.a(jmp_ippsDotProd_32f_as.o): dans la fonction « aucun symbole »:
/localdisk/commander/production/ipp901gold/linux_intel64/.build/linux/obj/intel64/ipps/emerged_compl/nonpic/dispatcher/jmp_ippsDotProd_32f_as.s:(.text+0x1): référence indéfinie vers « ippSafeInit »
ipps/libipps.a(jmp_ippsDotProd_32f_as.o): dans la fonction « ippsDotProd_32f »:
/localdisk/commander/production/ipp901gold/linux_intel64/.build/linux/obj/intel64/ipps/emerged_compl/nonpic/dispatcher/jmp_ippsDotProd_32f_as.s:(.text+0x13): référence indéfinie vers « ippJumpIndexForMergedLibs »
ipps/libipps.a(jmp_ippsFree_as.o): dans la fonction « aucun symbole »:
/localdisk/commander/production/ipp901gold/linux_intel64/.build/linux/obj/intel64/ipps/emerged_compl/nonpic/dispatcher/jmp_ippsFree_as.s:(.text+0x1): référence indéfinie vers « ippSafeInit »
ipps/libipps.a(jmp_ippsFree_as.o): dans la fonction « ippsFree »:
/localdisk/commander/production/ipp901gold/linux_intel64/.build/linux/obj/intel64/ipps/emerged_compl/nonpic/dispatcher/jmp_ippsFree_as.s:(.text+0x13): référence indéfinie vers « ippJumpIndexForMergedLibs »
ipps/libipps.a(jmp_ippsLShiftC_32s_I_as.o): dans la fonction « aucun symbole »:
/localdisk/commander/production/ipp901gold/linux_intel64/.build/linux/obj/intel64/ipps/emerged_compl/nonpic/dispatcher/jmp_ippsLShiftC_32s_I_as.s:(.text+0x1): référence indéfinie vers « ippSafeInit »
ipps/libipps.a(jmp_ippsLShiftC_32s_I_as.o): dans la fonction « ippsLShiftC_32s_I »:
/localdisk/commander/production/ipp901gold/linux_intel64/.build/linux/obj/intel64/ipps/emerged_compl/nonpic/dispatcher/jmp_ippsLShiftC_32s_I_as.s:(.text+0x13): référence indéfinie vers « ippJumpIndexForMergedLibs »
ipps/libipps.a(jmp_ippsMalloc_32f_as.o): dans la fonction « aucun symbole »:
/localdisk/commander/production/ipp901gold/linux_intel64/.build/linux/obj/intel64/ipps/emerged_compl/nonpic/dispatcher/jmp_ippsMalloc_32f_as.s:(.text+0x1): référence indéfinie vers « ippSafeInit »
ipps/libipps.a(jmp_ippsMalloc_32f_as.o): dans la fonction « ippsMalloc_32f »:
/localdisk/commander/production/ipp901gold/linux_intel64/.build/linux/obj/intel64/ipps/emerged_compl/nonpic/dispatcher/jmp_ippsMalloc_32f_as.s:(.text+0x13): référence indéfinie vers « ippJumpIndexForMergedLibs »
ipps/libipps.a(jmp_ippsMalloc_32s_as.o): dans la fonction « aucun symbole »:
/localdisk/commander/production/ipp901gold/linux_intel64/.build/linux/obj/intel64/ipps/emerged_compl/nonpic/dispatcher/jmp_ippsMalloc_32s_as.s:(.text+0x1): référence indéfinie vers « ippSafeInit »
ipps/libipps.a(jmp_ippsMalloc_32s_as.o): dans la fonction « ippsMalloc_32s »:
/localdisk/commander/production/ipp901gold/linux_intel64/.build/linux/obj/intel64/ipps/emerged_compl/nonpic/dispatcher/jmp_ippsMalloc_32s_as.s:(.text+0x13): référence indéfinie vers « ippJumpIndexForMergedLibs »
ipps/libipps.a(jmp_ippsMalloc_8u_as.o): dans la fonction « aucun symbole »:
/localdisk/commander/production/ipp901gold/linux_intel64/.build/linux/obj/intel64/ipps/emerged_compl/nonpic/dispatcher/jmp_ippsMalloc_8u_as.s:(.text+0x1): référence indéfinie vers « ippSafeInit »
ipps/libipps.a(jmp_ippsMalloc_8u_as.o): dans la fonction « ippsMalloc_8u »:
/localdisk/commander/production/ipp901gold/linux_intel64/.build/linux/obj/intel64/ipps/emerged_compl/nonpic/dispatcher/jmp_ippsMalloc_8u_as.s:(.text+0x13): référence indéfinie vers « ippJumpIndexForMergedLibs »
ipps/libipps.a(jmp_ippsMaxAbs_32s_as.o): dans la fonction « aucun symbole »:
/localdisk/commander/production/ipp901gold/linux_intel64/.build/linux/obj/intel64/ipps/emerged_compl/nonpic/dispatcher/jmp_ippsMaxAbs_32s_as.s:(.text+0x1): référence indéfinie vers « ippSafeInit »
ipps/libipps.a(jmp_ippsMaxAbs_32s_as.o): dans la fonction « ippsMaxAbs_32s »:
/localdisk/commander/production/ipp901gold/linux_intel64/.build/linux/obj/intel64/ipps/emerged_compl/nonpic/dispatcher/jmp_ippsMaxAbs_32s_as.s:(.text+0x13): référence indéfinie vers « ippJumpIndexForMergedLibs »
ipps/libipps.a(jmp_ippsMinMax_32f_as.o): dans la fonction « aucun symbole »:
/localdisk/commander/production/ipp901gold/linux_intel64/.build/linux/obj/intel64/ipps/emerged_compl/nonpic/dispatcher/jmp_ippsMinMax_32f_as.s:(.text+0x1): référence indéfinie vers « ippSafeInit »
ipps/libipps.a(jmp_ippsMinMax_32f_as.o): dans la fonction « ippsMinMax_32f »:
/localdisk/commander/production/ipp901gold/linux_intel64/.build/linux/obj/intel64/ipps/emerged_compl/nonpic/dispatcher/jmp_ippsMinMax_32f_as.s:(.text+0x13): référence indéfinie vers « ippJumpIndexForMergedLibs »
ipps/libipps.a(jmp_ippsMul_32s_ISfs_as.o): dans la fonction « aucun symbole »:
/localdisk/commander/production/ipp901gold/linux_intel64/.build/linux/obj/intel64/ipps/emerged_compl/nonpic/dispatcher/jmp_ippsMul_32s_ISfs_as.s:(.text+0x1): référence indéfinie vers « ippSafeInit »
ipps/libipps.a(jmp_ippsMul_32s_ISfs_as.o): dans la fonction « ippsMul_32s_ISfs »:
/localdisk/commander/production/ipp901gold/linux_intel64/.build/linux/obj/intel64/ipps/emerged_compl/nonpic/dispatcher/jmp_ippsMul_32s_ISfs_as.s:(.text+0x13): référence indéfinie vers « ippJumpIndexForMergedLibs »
Process terminated with status 1 (0 minute(s), 3 second(s))
50 error(s), 0 warning(s) (0 minute(s), 3 second(s))

1 个答案:

答案 0 :(得分:0)

您要链接的Gracenote SDK库会调用函数 在某些或其他Intel Integrated Performance Primitives库中定义的。 Gracenote SDK(至少你有一个)显然希望你有这些 库。也许它们包含在SDK的某个地方。也许你应该这样做 自己动手吧。无论如何,你没有联系任何一个;因此未定义的参考 联系错误。

这些库的名称格式为libipp*.a。在SDK中查找它们。如果你 无法找到它们,您可以从here

免费下载

获得它们后,您需要将程序与命令行链接,如:

g++ -L/path/to/lib -L/path/to/lib_static -L/path/to/the/IPP/libraries \ 
-o bin/Release/Gracenote obj/Release/main.o  \
-lgnsdk_dsp \
-lgnsdk_link \
-lgnsdk_lookup_local \ 
-lgnsdk_lookup_localstream \ 
-lgnsdk_manager \
-lgnsdk_moodgrid \
-lgnsdk_musicid \
-lgnsdk_musicid_file \ 
-lgnsdk_musicid_stream \ 
-lgnsdk_playlist \
-lgnsdk_storage_sqlite \ 
-lgnsdk_video \
-lipp? \
-lipp?? \
-lipp??? \
-pthread

其中-lipp? -lipp?? -lipp???是需要的IPP库 解析SDK库中的所有引用。

您需要在Code :: Blocks项目中配置选项以便它 将为g ++生成正确的链接命令行。这样做如下:

- > 构建选项 - > 搜索目录 - > 链接器,添加以下各项:

/path/to/lib 
/path/to/lib_static 
/path/to/the/IPP/libraries

- > 构建选项 - > 链接器设置 - > 链接库, 删除您在那里输入的所有lib_static/libgnsdk???.a选项。

- &gt; 构建选项 - &gt; 链接器设置 - &gt; 其他链接器选项, 按顺序添加我上面列出的所有-l<name>选项以及-pthread 我列出了他们。 (请注意-l<name>是正确的; -llib<name>是错误的。)

您可以尝试准确发现成功连接所需的IPP库。