Linker 链接器问题在g++;

Linker 链接器问题在g++;,linker,g++,undefined-reference,Linker,G++,Undefined Reference,我有以下.sh文件(来自) 当我试图从终端运行这个.sh文件时,我遇到了一个错误。因此,我一个接一个地执行命令。第一个运行得很好,当我运行第二个命令(g++-o Tutorial main.o-L./tensorflow/bazel bin/tensorflow)时,我看到了这一点 -ltensorflow_cc)我得到以下错误 /usr/bin/ld: main.o: undefined reference to symbol '_ZN10tensorflow3Env19NewRandomAc

我有以下.sh文件(来自)

当我试图从终端运行这个.sh文件时,我遇到了一个错误。因此,我一个接一个地执行命令。第一个运行得很好,当我运行第二个命令(g++-o Tutorial main.o-L./tensorflow/bazel bin/tensorflow)时,我看到了这一点 -ltensorflow_cc)我得到以下错误

/usr/bin/ld: main.o: undefined reference to symbol '_ZN10tensorflow3Env19NewRandomAccessFileERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPSt10unique_ptrINS_16RandomAccessFileESt14default_deleteISA_EE'
libtensorflow_framework.so: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
我看到了答案,我认为它与我的答案密切相关。但我不知道如何使它适应我的问题


有人能帮忙吗?

链接器说链接需要共享库
libtensorflow\u框架。所以
(大概是因为
-ltensorflow\u cc
依赖于它并请求它),但命令行中没有给出。这应该通过在末尾添加
-ltensorflow_framework
来解决,如果需要,还可以添加一个
-L
选项

链接器说链接需要共享库
libtensorflow\u框架。因此
(可能是因为
-ltensorflow\u cc
依赖并请求它),但命令行中没有给出。这应该通过在末尾添加
-ltensorflow_framework
来解决,如果需要,还可以添加一个
-L
选项

我也犯了同样的错误

如果您使用的是tensorflow 2,那么您需要链接.so.2文件。您应该在bazel构建目录中找到它们。对我来说是: /tmp/bazel/output/execroot/org_tensorflow/bazel out/k8 opt/bin/tensorflow

我在CMAKE中使用以下链接链接了这些文件: 文件(GLOB库“${bazel_bin}/tensorflow/*.so.2”)
消息(“LIBRARIES=${LIBRARIES}”)

我也遇到了同样的错误

如果您使用的是tensorflow 2,那么您需要链接.so.2文件。您应该在bazel构建目录中找到它们。对我来说是: /tmp/bazel/output/execroot/org_tensorflow/bazel out/k8 opt/bin/tensorflow

我在CMAKE中使用以下链接链接了这些文件: 文件(GLOB库“${bazel_bin}/tensorflow/*.so.2”)
消息(“LIBRARIES=${LIBRARIES}”)

@PythEch我这样做了,并且在我的tensorflow文件夹中创建了一些文件夹(bazel-bin、bazel-genfiles、bazel-out、bazel-tensorflow和bazel-testlogs)。这是正确的吗?链接器说链接需要共享库
libtensorflow\u框架。所以
(可能是因为
-ltensorflow\u cc
依赖它并请求它),但在命令行中没有给出。这应该通过在末尾添加
-ltensorflow\u framework
来解决,如果需要,还可以添加一个
-L
选项。@MikeKinghan非常感谢,我希望它能起作用。我现在不在,明天测试的时候会告诉你的。@MikeKinghan非常感谢它的有效性。如果你能把它作为一个答案,我可以把它标记为正确的。再次感谢你,不客气。回答了。@PythEch我回答了,在我的tensorflow文件夹中创建了一些文件夹(bazel bin、bazel genfiles、bazel out、bazel tensorflow和bazel testlogs)。这是正确的吗?链接器说链接需要共享库
libtensorflow\u框架。所以
(可能是因为
-ltensorflow\u cc
依赖它并请求它),但在命令行中没有给出。这应该通过在末尾添加
-ltensorflow\u framework
来解决,如果需要,还可以添加一个
-L
选项。@MikeKinghan非常感谢,我希望它能起作用。我现在不在,明天测试的时候会告诉你的。@MikeKinghan非常感谢它的有效性。如果你能把它作为一个答案,我可以把它标记为正确的。再次感谢你,不客气。我回答了。
/usr/bin/ld: main.o: undefined reference to symbol '_ZN10tensorflow3Env19NewRandomAccessFileERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPSt10unique_ptrINS_16RandomAccessFileESt14default_deleteISA_EE'
libtensorflow_framework.so: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status