tensorflow - tensorflow:在 Windows 7 上使用 g++ 6.3.0(通过 MinGW)构建操作时出错
问题描述
我是 tensorflow 的新手,我的目标是运行由另一个用户创建的预构建模型。作为此过程的第一步,我正在尝试构建几个操作。但是,我什至无法构建基本的操作,更不用说那些实际执行有用任务的操作了。举个例子,我按照这些指示创建了以下内容zero_out.cc
:
#include "tensorflow/core/framework/op.h"
#include "tensorflow/core/framework/op_kernel.h"
REGISTER_OP("ZeroOut")
.Input("to_zero: int32")
.Output("zeroed: int32");
using namespace tensorflow;
class ZeroOutOp : public OpKernel {
public:
explicit ZeroOutOp(OpKernelConstruction* context) : OpKernel(context) {}
void Compute(OpKernelContext* context) override {
// Grab the input tensor
const Tensor& input_tensor = context->input(0);
auto input = input_tensor.flat<int32>();
// Create an output tensor
Tensor* output_tensor = NULL;
OP_REQUIRES_OK(context, context->allocate_output(0, input_tensor.shape(),
&output_tensor));
auto output = output_tensor->template flat<int32>();
// Set all but the first element of the output tensor to 0.
const int N = input.size();
for (int i = 1; i < N; i++) {
output(i) = 0;
}
// Preserve the first input value if possible.
if (N > 0) output(0) = input(0);
}
};
之后,我尝试在cmd
(调用g++ 6.3.0
,我通过安装MinGW
)中运行以下命令:
g++ -std=c++11 -msse2 -shared zero_out.cc -o zero_out.so -I "C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include" -l tensorflow_framework -L "C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow" -fPIC -Wl,-rpath "C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow"
上面的行没有产生.so
文件,而是产生了各种各样的错误(我已经截断了这些错误以满足堆栈溢出字符限制):
In file included from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/google/protobuf/message_lite.h:48:0,
from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/google/protobuf/generated_enum_util.h:36,
from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/google/protobuf/map.h:48,
from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/google/protobuf/generated_message_table_driven.h:34,
from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/framework/op_def.pb.h:26,
from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/framework/op_def_builder.h:24,
from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/framework/op.h:23,
from zero_out.cc:1:
C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/google/protobuf/stubs/once.h:43:24: error: 'once_flag' in namespace 'std' does not name a type
using once_flag = std::once_flag;
^~~~~~~~~
C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/google/protobuf/stubs/once.h: In function 'void google::protobuf::internal::call_once(Args&& ...)':
C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/google/protobuf/stubs/once.h:46:3: error: 'call_once' is not a member of 'std'
std::call_once(std::forward<Args>(args)...);
^~~
C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/google/protobuf/stubs/once.h:46:3: note: suggested alternative:
C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/google/protobuf/stubs/once.h:45:6: note: 'google::protobuf::internal::call_once'
void call_once(Args&&... args ) {
^~~~~~~~~
In file included from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/google/protobuf/descriptor.h:62:0,
from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/google/protobuf/generated_message_reflection.h:47,
from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/framework/op_def.pb.h:30,
from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/framework/op_def_builder.h:24,
from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/framework/op.h:23,
from zero_out.cc:1:
C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/google/protobuf/stubs/mutex.h: At global scope:
C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/google/protobuf/stubs/mutex.h:107:8: error: 'mutex' in namespace 'std' does not name a type
std::mutex mu_;
^~~~~
C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/google/protobuf/stubs/mutex.h: In member function 'void google::protobuf::internal::WrappedMutex::Lock()':
C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/google/protobuf/stubs/mutex.h:99:43: error: 'mu_' was not declared in this scope
void Lock() GOOGLE_PROTOBUF_ACQUIRE() { mu_.lock(); }
^~~
C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/google/protobuf/stubs/mutex.h: In member function 'void google::protobuf::internal::WrappedMutex::Unlock()':
C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/google/protobuf/stubs/mutex.h:100:45: error: 'mu_' was not declared in this scope
void Unlock() GOOGLE_PROTOBUF_RELEASE() { mu_.unlock(); }
^~~
In file included from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/google/protobuf/generated_message_reflection.h:47:0,
from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/framework/op_def.pb.h:30,
from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/framework/op_def_builder.h:24,
from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/framework/op.h:23,
from zero_out.cc:1:
C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/google/protobuf/descriptor.h: At global scope:
C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/google/protobuf/descriptor.h:221:13: error: 'once_flag' in namespace 'google::protobuf::internal' does not name a type
internal::once_flag* once_;
^~~~~~~~~
C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/google/protobuf/descriptor.h: In member function 'void google::protobuf::internal::LazyDescriptor::Init()':
C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/google/protobuf/descriptor.h:189:5: error: 'once_' was not declared in this scope
once_ = nullptr;
^~~~~
C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/google/protobuf/descriptor.h: At global scope:
C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/google/protobuf/descriptor.h:787:13: error: 'once_flag' in namespace 'google::protobuf::internal' does not name a type
internal::once_flag* type_once_;
^~~~~~~~~
C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/google/protobuf/descriptor.h:1461:13: error: 'once_flag' in namespace 'google::protobuf::internal' does not name a type
internal::once_flag* dependencies_once_;
^~~~~~~~~
C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/google/protobuf/descriptor.h: In member function 'google::protobuf::FieldDescriptor::Type google::protobuf::FieldDescriptor::type() const':
C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/google/protobuf/descriptor.h:2053:7: error: 'type_once_' was not declared in this scope
if (type_once_) {
^~~~~~~~~~
In file included from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/framework/op_def.pb.h:30:0,
from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/framework/op_def_builder.h:24,
from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/framework/op.h:23,
from zero_out.cc:1:
C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/google/protobuf/generated_message_reflection.h: At global scope:
C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/google/protobuf/generated_message_reflection.h:271:3: error: 'once_flag' does not name a type
once_flag* once;
^~~~~~~~~
In file included from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/framework/op.h:32:0,
from zero_out.cc:1:
C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/platform/mutex.h:231:8: error: 'cv_status' in namespace 'std' does not name a type
std::cv_status wait_for(mutex_lock& lock,
^~~~~~~~~
C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/platform/mutex.h: In function 'tensorflow::ConditionResult tensorflow::WaitForMilliseconds(tensorflow::mutex_lock*, tensorflow::condition_variable*, tensorflow::int64)':
C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/platform/mutex.h:249:3: error: 'cv_status' is not a member of 'std'
std::cv_status s = cv->wait_for(*mu, std::chrono::milliseconds(ms));
^~~
C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/platform/mutex.h:250:11: error: 's' was not declared in this scope
return (s == std::cv_status::timeout) ? kCond_Timeout : kCond_MaybeNotified;
^
C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/platform/mutex.h:250:21: error: 'std::cv_status' has not been declared
return (s == std::cv_status::timeout) ? kCond_Timeout : kCond_MaybeNotified;
^~~~~~~~~
In file included from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/platform/mutex.h:310:0,
from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/framework/op.h:32,
from zero_out.cc:1:
C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/platform/default/mutex.h: At global scope:
C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/platform/default/mutex.h:25:6: error: 'cv_status' in namespace 'std' does not name a type
std::cv_status wait_until_system_clock(
^~~~~~~~~
C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/platform/default/mutex.h:31:6: error: 'cv_status' in namespace 'std' does not name a type
std::cv_status condition_variable::wait_for(
^~~~~~~~~
In file included from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/third_party/eigen3/unsupported/Eigen/CXX11/Tensor:1:0,
from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/framework/numeric_types.h:20,
from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/framework/allocator.h:26,
from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/framework/op_kernel.h:24,
from zero_out.cc:2:
C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/unsupported/Eigen/CXX11/Tensor:44:17: error: conflicting declaration 'typedef long int int32_t'
typedef __int32 int32_t;
^~~~~~~
In file included from c:\mingw\lib\gcc\mingw32\6.3.0\include\stdint.h:9:0,
from c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\cstdint:41,
from c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\char_traits.h:420,
from c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\string:40,
from c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\stdexcept:39,
from c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\array:39,
from c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\tuple:39,
from c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\functional:55,
from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/framework/op.h:19,
from zero_out.cc:1:
c:\mingw\include\stdint.h:62:15: note: previous declaration as 'typedef int int32_t'
typedef int int32_t;
^~~~~~~
In file included from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/third_party/eigen3/unsupported/Eigen/CXX11/Tensor:1:0,
from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/framework/numeric_types.h:20,
from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/framework/allocator.h:26,
from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/framework/op_kernel.h:24,
from zero_out.cc:2:
C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/unsupported/Eigen/CXX11/Tensor:45:26: error: conflicting declaration 'typedef long unsigned int uint32_t'
typedef unsigned __int32 uint32_t;
^~~~~~~~
In file included from c:\mingw\lib\gcc\mingw32\6.3.0\include\stdint.h:9:0,
from c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\cstdint:41,
from c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\char_traits.h:420,
from c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\string:40,
from c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\stdexcept:39,
from c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\array:39,
from c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\tuple:39,
from c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\functional:55,
from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/framework/op.h:19,
from zero_out.cc:1:
c:\mingw\include\stdint.h:63:19: note: previous declaration as 'typedef unsigned int uint32_t'
typedef unsigned uint32_t;
^~~~~~~~
In file included from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/platform/notification.h:27:0,
from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/lib/core/notification.h:21,
from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/framework/cancellation.h:22,
from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/framework/op_kernel.h:25,
from zero_out.cc:2:
C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/platform/default/notification.h: In member function 'bool tensorflow::Notification::WaitForNotificationWithTimeout(tensorflow::int64)':
C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/platform/default/notification.h:69:20: error: 'class tensorflow::condition_variable' has no member named 'wait_for'; did you mean 'wait'?
cv_.wait_for(l, std::chrono::microseconds(timeout_in_us)) !=
^~~~~~~~
C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/platform/default/notification.h:70:25: error: 'std::cv_status' has not been declared
std::cv_status::timeout);
^~~~~~~~~
In file included from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/third_party/eigen3/unsupported/Eigen/CXX11/Tensor:1:0,
from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/framework/tensor.h:22,
from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/framework/device_base.h:26,
from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/framework/op_kernel.h:27,
from zero_out.cc:2:
C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/unsupported/Eigen/CXX11/Tensor: At global scope:
C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/unsupported/Eigen/CXX11/Tensor:44:17: error: conflicting declaration 'typedef long int int32_t'
typedef __int32 int32_t;
^~~~~~~
In file included from c:\mingw\lib\gcc\mingw32\6.3.0\include\stdint.h:9:0,
from c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\cstdint:41,
from c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\char_traits.h:420,
from c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\string:40,
from c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\stdexcept:39,
from c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\array:39,
from c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\tuple:39,
from c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\functional:55,
from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/framework/op.h:19,
from zero_out.cc:1:
c:\mingw\include\stdint.h:62:15: note: previous declaration as 'typedef int int32_t'
typedef int int32_t;
^~~~~~~
In file included from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/third_party/eigen3/unsupported/Eigen/CXX11/Tensor:1:0,
from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/framework/tensor.h:22,
from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/framework/device_base.h:26,
from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/framework/op_kernel.h:27,
from zero_out.cc:2:
C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/unsupported/Eigen/CXX11/Tensor:45:26: error: conflicting declaration 'typedef long unsigned int uint32_t'
typedef unsigned __int32 uint32_t;
^~~~~~~~
In file included from c:\mingw\lib\gcc\mingw32\6.3.0\include\stdint.h:9:0,
from c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\cstdint:41,
from c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\char_traits.h:420,
from c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\string:40,
from c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\stdexcept:39,
from c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\array:39,
from c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\tuple:39,
from c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\functional:55,
from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/framework/op.h:19,
from zero_out.cc:1:
c:\mingw\include\stdint.h:63:19: note: previous declaration as 'typedef unsigned int uint32_t'
typedef unsigned uint32_t;
^~~~~~~~
In file included from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/third_party/eigen3/unsupported/Eigen/CXX11/Tensor:1:0,
from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/framework/tensor_shape.h:21,
from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/framework/tensor.h:24,
from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/framework/device_base.h:26,
from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/framework/op_kernel.h:27,
from zero_out.cc:2:
C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/unsupported/Eigen/CXX11/Tensor:44:17: error: conflicting declaration 'typedef long int int32_t'
typedef __int32 int32_t;
^~~~~~~
In file included from c:\mingw\lib\gcc\mingw32\6.3.0\include\stdint.h:9:0,
from c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\cstdint:41,
from c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\char_traits.h:420,
from c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\string:40,
from c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\stdexcept:39,
from c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\array:39,
from c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\tuple:39,
from c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\functional:55,
from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/framework/op.h:19,
from zero_out.cc:1:
c:\mingw\include\stdint.h:62:15: note: previous declaration as 'typedef int int32_t'
typedef int int32_t;
^~~~~~~
In file included from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/third_party/eigen3/unsupported/Eigen/CXX11/Tensor:1:0,
from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/framework/tensor_shape.h:21,
from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/framework/tensor.h:24,
from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/framework/device_base.h:26,
from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/framework/op_kernel.h:27,
from zero_out.cc:2:
C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/unsupported/Eigen/CXX11/Tensor:45:26: error: conflicting declaration 'typedef long unsigned int uint32_t'
typedef unsigned __int32 uint32_t;
^~~~~~~~
In file included from c:\mingw\lib\gcc\mingw32\6.3.0\include\stdint.h:9:0,
from c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\cstdint:41,
from c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\char_traits.h:420,
from c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\string:40,
from c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\stdexcept:39,
from c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\array:39,
from c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\tuple:39,
from c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\functional:55,
from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/framework/op.h:19,
from zero_out.cc:1:
c:\mingw\include\stdint.h:63:19: note: previous declaration as 'typedef unsigned int uint32_t'
typedef unsigned uint32_t;
^~~~~~~~
In file included from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/third_party/eigen3/unsupported/Eigen/CXX11/Tensor:1:0,
from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/framework/tensor_types.h:19,
from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/framework/tensor.h:25,
from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/framework/device_base.h:26,
from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/framework/op_kernel.h:27,
from zero_out.cc:2:
C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/unsupported/Eigen/CXX11/Tensor:44:17: error: conflicting declaration 'typedef long int int32_t'
typedef __int32 int32_t;
^~~~~~~
In file included from c:\mingw\lib\gcc\mingw32\6.3.0\include\stdint.h:9:0,
from c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\cstdint:41,
from c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\char_traits.h:420,
from c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\string:40,
from c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\stdexcept:39,
from c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\array:39,
from c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\tuple:39,
from c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\functional:55,
from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/framework/op.h:19,
from zero_out.cc:1:
c:\mingw\include\stdint.h:62:15: note: previous declaration as 'typedef int int32_t'
typedef int int32_t;
^~~~~~~
考虑到基本zero_out.cc
的外观(至少在我的新手眼中),我怀疑主要问题出在其他地方。值得注意的是,我构建现有操作的尝试也引发了相互冲突的声明错误,所以即使我在写作上犯了一些错误zero_out.cc
,这也不是问题的全部。根据我的阅读,后来的 C++ 标准据说修复了与变量模板相关的问题,但无论我使用-std=c++11
,-std=c++14
还是-std=c++17
作为调用中的g++
选项(在我尝试过的其他选项中),我都得到了相同的确切错误)。看起来也不应该仅仅为了构建一个基本的操作而手动重写一堆标准安装文件......我希望。
可能有一些可笑的简单错误正在逃脱我的掌握,所以对于新手可能提出的一个非常基本的问题,我深表歉意。尽管如此,您可以提供的任何见解都将不胜感激。
(以防万一,我最初尝试从源代码构建 tensorflow,但遇到了 bazel 和 bazelisk 的许多问题。最近,在卸载了我以前的 tensorflow 版本后,我从 安装了 tensorflow pip
,至少据我所知. 但是,我不确定我之前的安装尝试留下的任何工件是否会与新安装发生冲突,坦率地说,我对 tensorflow 不够熟悉,甚至不知道如何开始诊断此类一个问题。)
更新:我最终咬紧牙关,只使用 Visual Studio 进行内核编译——尽管我想避免不必要地依赖专有工具,但似乎没有太多选择。如果它对其他人有帮助,以下命令提示符适用于zero_out.cc
:
cpp -std=c++11 -msse2 -shared "C:/Users/Admin/AppData/Local/Programs/Python/Python38/Lib/site-packages/tensorflow/tensorflow/tensorflow/core/kernels/zero_out.cc" -o "C:/Users/Admin/AppData/Local/Programs/Python/Python38/Lib/site-packages/tensorflow/tensorflow/tensorflow/core/kernels/zero_out.so" -I "C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include" -l tensorflow_framework -L "C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow"
话虽如此,我仍然对涉及g++
或类似工具的任何潜在解决方案感兴趣,因此我将按原样保留这个问题,以便其他人可以发布他们拥有的任何答案。(此外,虽然上述代码行适用于zero_out.cc
,但它导致其他一些内核出现错误。不过,这似乎是一个明显的问题,所以如果我无法解决它,我会将它作为一个单独的问题发布在我的自己的。)
解决方案
推荐阅读
- oracle - 为什么我们在 oracle 中终止会话时使用 alter 命令?
- c# - 如何通过 ac#soap Web 服务使用 Unity 发送图像?
- javascript - Bootstrap-vue textarea.selectionStart 为 NaN 或未定义
- sql - 动态 SQL 选择变量名
- c++ - 将 CMake 构建的库链接到预构建的目标文件
- mongoose - 填充对象数组数组内的字段
- javascript - 如何从 SSO 后面的 app/service2 获取在 app/service1 中工作的资源
- sapui5 - 使用组件容器在多个应用程序中重用应用程序
- php - 如何使用 php 脚本更新所有表中的所有列值?
- xml - 如何为 IntelliJ IDEA 创建 xml scala 代码格式模式