- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我想在 Linux 上使用 GNSDK (Gracenote SDK) 编译一个应用程序,但我有错误(我使用 Code::Blocks)。我不想将 gracenote 指纹与 musicid_file_trackid 函数一起使用。
我在 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))
我该如何解决这个问题?
提前谢谢你。
文森特·勒维克
编辑:我已经尝试了你的建议,但使用了这个链接器选项:
-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))
最佳答案
您正在链接的 Gracenote SDK 库调用函数在某些或其他英特尔集成性能基元库中定义的。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++ 生成正确的链接命令行。按如下方式执行此操作:
在 -> Build options -> Search directories -> Linker,添加每一个:
/path/to/lib
/path/to/lib_static
/path/to/the/IPP/libraries
在 -> Build options -> Linker settings -> Link libraries,删除所有 lib_static/libgnsdk???.a
您在那里输入的选项。
在 -> Build options -> Linker settings -> Other linker options,添加所有 -l<name>
我上面列出的选项,加上 -pthread
, 按顺序我已经列出了它们。 (注意 -l<name>
是正确的;-llib<name>
是错误的。)
您可以通过实验来准确发现成功链接所需的 IPP 库。
关于linux - Gracenote GNSDK 在 linux 上编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34944906/
我们目前正在使用 Gracenote Music API,想知道是否有完整的流派列表以及不同流派层次结构之间的映射。理想情况下,我们希望在后端 Gracenote 系统中转储这些表。如果 .csv、文
GnAlbum 的标识符标签是什么? GnAlbum(java.lang.String id, java.lang.String idTag) Constructs a GnAlbum o
目前,在我的 AppDelegate 中,我有一个为 GNConfig 声明的实例变量,它设置了我想要接收的所有属性。 GNconfig 的这个实例被任何发出 gracenote 请求的类使用。 我正
我刚开始发现有趣的 Gracenote 节奏 API - https://developer.gracenote.com/rhythm-api 它说它包括元数据、音乐识别和 网络广播 API ,但我没
我使用带有 SDK Gracenote (GNSDK) 的脚本来对文件(指纹)进行音频识别。 脚本工作正常,我只是想转义变量中的双引号。 我发现了这个功能: void str_replace(char
我尝试创建可以识别音乐轨道的应用程序,但是每次调用 block 时: dispatch_async(self.internalQueue, ^{ self.gnAudioVisualizeAda
我正在尝试从 iOS 上读取 16 位 16KHz wav(20 秒长)并执行指纹识别。我尝试按照指南“GNSDK-for-Mobile-iOS-Developers-Guide”进行操作,但它在第
我想在 Linux 上使用 GNSDK (Gracenote SDK) 编译一个应用程序,但我有错误(我使用 Code::Blocks)。我不想将 gracenote 指纹与 musicid_file
我最近发现了 GNSDK (Gracenote SDK)似乎提供了多种编程语言的示例,通过指纹识别音乐样本,然后请求他们的音频数据库以获取相应的艺术家和歌曲标题。 但是文档很糟糕。 如何使用 Pyth
这两天我一直在努力寻找原因,但无济于事。Gracenote Mobile SDK MID-Stream 返回正确的结果。 MID-File 工作正常。 起初,我认为我的应用程序可能有问题。但是,尝试在
我正在使用 gracenote ApI 进行歌曲识别。我正在获取歌曲名称、艺术家姓名和专辑等所有详细信息,但我无法获取专辑的封面艺术。我正在使用代码来获取它,但我总是在该代码中得到空值。我为此进行了很
我正在测试一个可以听歌并识别歌曲的应用程序。为此,我使用了 gracenote api 作为移动客户端 api,并在 Android 上提供了帮助 here并在 Eclipse 上成功实现了它,但是当
我是一名优秀的程序员,十分优秀!