tensorflow:在Windows 7上使用g ++ 6.3.0通过MinGW构建op时发生错误

如何解决tensorflow:在Windows 7上使用g ++ 6.3.0通过MinGW构建op时发生错误

我是tensorflow的新手,旨在运行由另一个用户创建的预构建模型。作为此过程的第一步,我正在尝试构建多个操作。但是,我什至无法构建基本操作,更不用说那些实际执行有用任务的操作了。举个例子,我遵循these directions,并创建了以下内容为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文件,而是产生了一系列错误(为了满足Stack Overflow字符限制,我将其截短了):

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 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 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 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 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 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 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/tensor_types.h:19,from C:\Users\Admin\AppData\Roaming\Python\Python38\site-packages\tensorflow\include/tensorflow/core/framework/tensor.h:25,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版本后,我从pip安装了tensorflow,该方法可以正常工作,据我所知,但是,我不确定我以前的安装尝试留下的任何工件是否可能与新安装相冲突,并且坦率地说,我对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,但它导致其他一些内核出错。不过,这似乎是一个不同的问题,因此,如果可以,我将其作为一个单独的问题发布,不能自己解决。)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


依赖报错 idea导入项目后依赖报错,解决方案:https://blog.csdn.net/weixin_42420249/article/details/81191861 依赖版本报错:更换其他版本 无法下载依赖可参考:https://blog.csdn.net/weixin_42628809/a
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下 2021-12-03 13:33:33.927 ERROR 7228 [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPL
错误1:gradle项目控制台输出为乱码 # 解决方案:https://blog.csdn.net/weixin_43501566/article/details/112482302 # 在gradle-wrapper.properties 添加以下内容 org.gradle.jvmargs=-Df
错误还原:在查询的过程中,传入的workType为0时,该条件不起作用 &lt;select id=&quot;xxx&quot;&gt; SELECT di.id, di.name, di.work_type, di.updated... &lt;where&gt; &lt;if test=&qu
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct redisServer’没有名为‘server_cpulist’的成员 redisSetCpuAffinity(server.server_cpulist); ^ server.c: 在函数‘hasActiveC
解决方案1 1、改项目中.idea/workspace.xml配置文件,增加dynamic.classpath参数 2、搜索PropertiesComponent,添加如下 &lt;property name=&quot;dynamic.classpath&quot; value=&quot;tru
删除根组件app.vue中的默认代码后报错:Module Error (from ./node_modules/eslint-loader/index.js): 解决方案:关闭ESlint代码检测,在项目根目录创建vue.config.js,在文件中添加 module.exports = { lin
查看spark默认的python版本 [root@master day27]# pyspark /home/software/spark-2.3.4-bin-hadoop2.7/conf/spark-env.sh: line 2: /usr/local/hadoop/bin/hadoop: No s
使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams[&#39;font.sans-serif&#39;] = [&#39;SimHei&#39;] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -&gt; systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping(&quot;/hires&quot;) public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate&lt;String
使用vite构建项目报错 C:\Users\ychen\work&gt;npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-