【发布时间】:2019-12-10 22:55:34
【问题描述】:
我想在我的 tensorflow lite 项目中使用一些 C 代码,但是 tensorflow lite 存储库中提供的所有示例项目都是 C++ 示例。
特别是,我正在使用 AmbiqSDK 存储库,它为 apollo3 平台提供示例,所有示例都用 C 语言编写,我现在想将其与 tensorflow lite 示例之一合并。
相关的makefile部分在这里:
MICRO_SPEECH_SRCS := \
tensorflow/lite/experimental/micro/examples/micro_speech/main.cc \
...
tensorflow/lite/experimental/micro/examples/micro_speech/command_responder.cc \
new_c_file_here.c \ ---->> HERE I LINK MY ADDITIONAL C CODE
$(MICRO_FEATURES_GENERATOR_SRCS)
...
# Builds a standalone speech command recognizer binary.
$(eval $(call microlite_test,micro_speech,\
$(MICRO_SPEECH_SRCS),$(MICRO_SPEECH_HDRS)))
...
# For normal manually-created TensorFlow C++ source files.
$(OBJDIR)%.o: %.cc third_party_downloads
@mkdir -p $(dir $@)
$(CXX) $(CXXFLAGS) $(INCLUDES) -c $< -o $@
...
# For normal manually-created TensorFlow C source files.
$(OBJDIR)%.o: %.c third_party_downloads
@mkdir -p $(dir $@)
$(CC) $(CCFLAGS) $(INCLUDES) -c $< -o $@
在我的 new_c_file_here.c 文件中,我将所有内容都包装在 extern "C"{} 中。
但我仍然遇到链接器错误,在使用各自的编译器编译 C++ tensorflow lite 示例项目或 C apollo3 示例项目时,我没有遇到这些错误:
....
tensorflow/lite/experimental/micro/tools/make/gen/sparkfun_edge_cortex-m4/obj//Users/macuser/Desktop/tf115/tensorflow/lite/experimental/micro/tools/make/downloads/AmbiqSuite-Rel2。 0.0/third_party/exactle/sw/hci/ambiq/apollo3/hci_drv_apollo3.o: 在函数
HciDrvHandler': /Users/macuser/Desktop/tf115/tensorflow/lite/experimental/micro/tools/make/downloads/AmbiqSuite-Rel2.0.0/third_party/exactle/sw/hci/ambiq/apollo3/hci_drv_apollo3.c:1099: undefined reference toDmDevReset' tensorflow/lite/experimental/micro/tools/make/gen/sparkfun_edge_cortex-m4/obj//Users/macuser/Desktop/tf115/tensorflow/lite/experimental/micro/tools/make/downloads/AmbiqSuite-Rel2.0.0/third_party /exactle/sw/profiles/hrps/hrps_main.o: 在函数hrpsFindNextToSend': /Users/macuser/Desktop/tf115/tensorflow/lite/experimental/micro/tools/make/downloads/AmbiqSuite-Rel2.0.0/third_party/exactle/sw/profiles/hrps/hrps_main.c:125: undefined reference toAttsCccEnabled' tensorflow/lite/experimental/micro/tools/make/gen/sparkfun_edge_cortex-m4/obj//Users/macuser/Desktop/tf115/tensorflow/lite/experimental/micro/tools/make/downloads/AmbiqSuite-Rel2.0.0/third_party /exactle/sw/profiles/hrps/hrps_main.o: 在函数hrpsSendHrmNtf': /Users/macuser/Desktop/tf115/tensorflow/lite/experimental/micro/tools/make/downloads/AmbiqSuite-Rel2.0.0/third_party/exactle/sw/profiles/hrps/hrps_main.c:204: undefined reference toAttsHandleValueNtf'....
如何正确编译我的 tensorflow lite C++ 项目中的 C 代码?
我使用的是 TensorFlow 1.15.0。
【问题讨论】:
-
你能找到
AttsCccEnabled和AttsHandleValueNtf定义的文件吗?
标签: c++ c tensorflow gnu-make