Swift 프로젝트 (Xcode 9.1, macOS 10.13)가 있고 Swift로 C 파일의 헤더를 브리징하여 ViewController.swift와 자체 C 라이브러리를 연결하려고했습니다.Apple Mach-O Linker 오류 _
그러나, comilation 오류가 발생하고, 이것은 출력 : 내가 잘못
Undefined symbols for architecture x86_64: "_HTS_Engine_clear", referenced from: _Flite_HTS_Engine_clear in flite_hts_engine.o (maybe you meant: _Flite_HTS_Engine_clear) "_ffeature_string", referenced from: _create_label in flite_hts_engine.o _Flite_Text_Analyzer_get_phoneme in flite_hts_engine.o _Flite_Text_Analyzer_get_word in flite_hts_engine.o "_val_string_n", referenced from: _create_label in flite_hts_engine.o "_HTS_Engine_initialize", referenced from: _Flite_HTS_Engine_initialize in flite_hts_engine.o (maybe you meant: _Flite_HTS_Engine_initialize) "_HTS_Engine_set_speed", referenced from: _Flite_HTS_Engine_set_speed in flite_hts_engine.o (maybe you meant: _Flite_HTS_Engine_set_speed) "_register_cmu_us_kal", referenced from: _Flite_HTS_Engine_synthesize in flite_hts_engine.o _Flite_Text_Analyzer_analysis in flite_hts_engine.o "_relation_head", referenced from: _Flite_HTS_Engine_synthesize in flite_hts_engine.o _Flite_Text_Analyzer_analysis in flite_hts_engine.o _Flite_Text_Analyzer_get_label_data in flite_hts_engine.o "_item_next", referenced from: _Flite_HTS_Engine_synthesize in flite_hts_engine.o _create_label in flite_hts_engine.o _Flite_Text_Analyzer_analysis in flite_hts_engine.o _Flite_Text_Analyzer_get_label_data in flite_hts_engine.o "_utt_relation", referenced from: _Flite_HTS_Engine_synthesize in flite_hts_engine.o _Flite_Text_Analyzer_analysis in flite_hts_engine.o _Flite_Text_Analyzer_get_label_data in flite_hts_engine.o "_HTS_Engine_refresh", referenced from: _Flite_HTS_Engine_synthesize in flite_hts_engine.o "_HTS_Engine_set_volume", referenced from: _Flite_HTS_Engine_set_volume in flite_hts_engine.o (maybe you meant: _Flite_HTS_Engine_set_volume) "_delete_utterance", referenced from: _Flite_HTS_Engine_synthesize in flite_hts_engine.o _Flite_Text_Analyzer_analysis in flite_hts_engine.o _Flite_Text_Analyzer_clear in flite_hts_engine.o "_unregister_cmu_us_kal", referenced from: _Flite_HTS_Engine_synthesize in flite_hts_engine.o _Flite_Text_Analyzer_analysis in flite_hts_engine.o _Flite_Text_Analyzer_clear in flite_hts_engine.o "_HTS_Engine_save_riff", referenced from: _Flite_HTS_Engine_synthesize in flite_hts_engine.o "_flite_synth_text", referenced from: _Flite_HTS_Engine_synthesize in flite_hts_engine.o _Flite_Text_Analyzer_analysis in flite_hts_engine.o "_HTS_Engine_set_msd_threshold", referenced from: _Flite_HTS_Engine_set_msd_threshold in flite_hts_engine.o (maybe you meant: _Flite_HTS_Engine_set_msd_threshold) "_HTS_Engine_set_beta", referenced from: _Flite_HTS_Engine_set_beta in flite_hts_engine.o (maybe you meant: _Flite_HTS_Engine_set_beta) "_HTS_Engine_add_half_tone", referenced from: _Flite_HTS_Engine_add_half_tone in flite_hts_engine.o (maybe you meant: _Flite_HTS_Engine_add_half_tone) "_val_string", referenced from: _create_label in flite_hts_engine.o "_HTS_Engine_set_alpha", referenced from: _Flite_HTS_Engine_set_alpha in flite_hts_engine.o (maybe you meant: _Flite_HTS_Engine_set_alpha) "_HTS_Engine_set_gv_weight", referenced from: _Flite_HTS_Engine_set_gv_weight in flite_hts_engine.o (maybe you meant: _Flite_HTS_Engine_set_gv_weight) "_HTS_Engine_synthesize_from_strings", referenced from: _Flite_HTS_Engine_synthesize in flite_hts_engine.o "_HTS_Engine_set_sampling_frequency", referenced from: _Flite_HTS_Engine_set_sampling_frequency in flite_hts_engine.o (maybe you meant: _Flite_HTS_Engine_set_sampling_frequency) "_HTS_Engine_set_fperiod", referenced from: _Flite_HTS_Engine_set_fperiod in flite_hts_engine.o (maybe you meant: _Flite_HTS_Engine_set_fperiod) "_ffeature_int", referenced from: _create_label in flite_hts_engine.o _Flite_Text_Analyzer_get_nphoneme_in_syllable in flite_hts_engine.o _Flite_Text_Analyzer_get_nsyllable_in_word in flite_hts_engine.o _Flite_Text_Analyzer_get_nword_in_phrase in flite_hts_engine.o _Flite_Text_Analyzer_get_nphrase_in_utterance in flite_hts_engine.o _Flite_Text_Analyzer_get_accent in flite_hts_engine.o _Flite_Text_Analyzer_get_stress in flite_hts_engine.o ... "_HTS_Engine_load", referenced from: _Flite_HTS_Engine_load in flite_hts_engine.o (maybe you meant: _Flite_HTS_Engine_load) "_HTS_Engine_set_audio_buff_size", referenced from: _Flite_HTS_Engine_set_audio_buff_size in flite_hts_engine.o (maybe you meant: _Flite_HTS_Engine_set_audio_buff_size) ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)
을 뭐하는 거지? DerivedData에서 모든 파일을 삭제하려고했지만 동일한 프로젝트 (제품 별/클리닝 별)에서도 청소를 시도했지만 문제는 변경되지 않았습니다.
hts_engineLib의 모든 라이브러리에 소스 파일을 추가 한 후 링커 오류가 사라지고 6 번의 컴파일 오류가 나타나지만 오류가 발생하면 66 개의 링커 오류가 발생합니다. 개체 파일 (.o)을 모든 원본 파일에 추가하려고 시도했지만 오류가 계속 발생합니다. 어쩌면 C warpper, .c 및 .h 파일에 C 래퍼를 작성하는 방법 때문일 수 있습니까? – NoraQm
일반적인 컴파일 링커 오류는 무엇입니까? 컴파일 문제를 어떻게 수정 했습니까? .o 파일을 프로젝트에 추가 했습니까? 절대 수행해서는 안되며 소스 코드가 아닙니다. 왜 htsEngineLib 주위에 래퍼를 만들려고 했습니까? 인터페이스를 단순화하거나 C++의 lib입니까? SO와 웹에 대한 많은 정보가 일반적으로 래퍼 작성에 관해 있습니다. – OmniProg