[英]how to solve /bin/sh: protoc: command not found?
我已經在我的 CentOs 中安裝了 protobuf 2.5.0,
當我執行命令protoc --version 時,它會產生
庫協議 2.5.0
作為輸出。
但是一旦我從 git 中提取代碼並且當我嘗試使用 Maven3 編譯它時,proto 模塊就會拋出錯誤說,
protoc failed 錯誤:/bin/sh: protoc: command not found
我參考了許多博客,也確實嘗試如下更改我的 bashrc 路徑,
導出 JAVA_HOME=/opt/java/jdk1.7.0_67
導出 PATH=$PATH:/opt/java/jdk1.7.0_67/bin
導出 PATH=$PATH:/usr/local/lib
但如果我執行,
sudo yum 安裝 protobuf 編譯器
它安裝了 protobuf2.3 編譯器,這個特定的錯誤得到了解決。 但是由於我的pom文件是protobuf 2.5.0,下次編譯的時候會出現java抽象方法錯誤。 我被困在如何繼續。 我在里面花了很多時間,所以非常感謝任何幫助。
我的 proto 模塊的 pom 文件,
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>GradPower</artifactId>
<groupId>org.screative.gardpower</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<groupId>proto</groupId>
<artifactId>proto</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
<version>2.5.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>com.google.protobuf.tools</groupId>
<artifactId>maven-protoc-plugin</artifactId>
<version>0.1.10</version>
<configuration>
<protocExecutable>protoc</protocExecutable>
<protoSourceRoot>${project.basedir}/src/main/proto/</protoSourceRoot>
<languageSpecifications>
<LanguageSpecification>
<language>JAVA</language>
<outputDirectory>
${project.basedir}/target/generated-sources/protoc
</outputDirectory>
</LanguageSpecification>
</languageSpecifications>
</configuration>
<executions>
<execution>
<goals>
<goal>compile</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<compilerArgument></compilerArgument>
</configuration>
</plugin>
</plugins>
</build>
<pluginRepositories>
<pluginRepository>
<id>dtrott</id>
<url>http://maven.davidtrott.com/repository</url>
</pluginRepository>
</pluginRepositories>
</project>
提前致謝。
編輯:我解決了它。 我將 protoc 文件從 /usr/local/lib 復制到 /usr/bin
它解決了它。 一個愚蠢的錯誤:P
您應該運行“sudo ldconfig”來完成安裝。
我猜你設置了 LD_LIBRARY_PATH 來在你的環境設置中添加 /usr/local/lib 。 並且在使用maven/sbt等構建工具構建項目時不生效。
從問題中提取的答案(由 OP 編寫):
我解決了。 我將 protoc 文件從
/usr/local/lib
復制到/usr/bin
並解決了它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.