簡単な操作でprotobufのバージョンの問題を解決するために、コピーして貼り付けることができます。
- この方法は単純ですが、サーバー上の全員のバージョンの競合を解決するために、anaconda を使用した完璧なソリューションがあります。 必要ならコンフリクトのない環境をいくつも作ることができます。一種の万能ソリューションで、チュートリアルは http://www.cnblogs.com/SweetBeens/p/8650460.html にあり、推奨されています。もちろんdockerの方が少しはマシですが、古いコードにはdockerのファイルはありません。
- 最初から
どのバージョンをインストールする必要があるのかを確認する方法、以上。
私のファイルへのパスが これは、caffeのオフィシャルサイトにあるあのコマンドラインの出所です。
for req in $(cat requirements.txt); do pip install $req; done
segnet作者が自分で変更したpython版のcaffeを使っていることを考えると、ここに私のディレクトリがあるので、貧乏くじを引いて自分で選んで、何をインストールすればいいのか確認することができます。どのバージョンであっても、私のtxtに従うのが妥当なのですが、もしかしたら私のtxtがおかしいのか、protobufが後方互換性がないのか、caffeがanacondaのprotobufを探しているのか、バージョンに問題があるのか、とにかくもっと詳しいcaffe設定の公式オリジナルdocがないのか、見てみようかとますます興味が出てきました。 こういう盲人の問題解決は、楽しさを失っていますね。
- 今、研究室のサーバーはprotobufのバージョンが高いので、2.6.1を使って投げ始めています。まず、以下のような接続で2.6.1をインストールしました。 (最後まで飛ばして解き始めることを選択できます。そこが本題です)
http://blog.csdn.net/whoamiyang/article/details/52947225
- というロードマップを促した。
libtool: install: (cd /usr/local/lib && { ln -s -f libprotoc.so.9.0.1 libprotoc.so.9 || { rm -f libprotoc.so.9 && ln -s libprotoc. so.9.0.1 libprotoc.so.9; }; })
libtool: install: (cd /usr/local/lib && { ln -s -f libprotoc.so.9.0.1 libprotoc.so || { rm -f libprotoc.so && ln -s libprotoc.so.9. 0.1 libprotoc.so; }; })
libtool: install: /usr/bin/install -c .libs/libprotoc.lai /usr/local/lib/libprotoc.la
libtool: install: /usr/bin/install -c .libs/libprotobuf-lite.a /usr/local/lib/libprotobuf-lite.a
libtool: install: chmod 644 /usr/local/lib/libprotobuf-lite.a
libtool: install: ranlib /usr/local/lib/libprotobuf-lite.a
libtool: install: /usr/bin/install -c .libs/libprotobuf.a /usr/local/lib/libprotobuf.a
libtool: install: chmod 644 /usr/local/lib/libprotobuf.a
libtool: install: ranlib /usr/local/lib/libprotobuf.a
libtool: install: /usr/bin/install -c .libs/libprotoc.a /usr/local/lib/libprotoc.a
libtool: install: chmod 644 /usr/local/lib/libprotoc.a
libtool: install: ranlib /usr/local/lib/libprotoc.a
libtool: finish: PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/sbin" ldconfig -n /usr/local/ lib
----------------------------------------------------------------------
Libraries have been installed in:
/usr/local/lib
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
- add LIBDIR to the `LD_LIBRARY_PATH' environment variable
during execution
- add LIBDIR to the `LD_RUN_PATH' environment variable
during linking
- use the `-Wl,-rpath -Wl,LIBDIR' linker flag
- have your system administrator add LIBDIR to `/etc/ld.so.conf'
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
/bin/mkdir -p '/usr/local/bin'
/bin/bash ... /libtool --mode=install /usr/bin/install -c protoc '/usr/local/bin'
libtool: install: /usr/bin/install -c .libs/protoc /usr/local/bin/protoc
/bin/mkdir -p '/usr/local/include'
/bin/mkdir -p '/usr/local/include/google/protobuf'
/usr/bin/install -c -m 644 google/protobuf/descriptor.proto '/usr/local/include/google/protobuf'
/bin/mkdir -p '/usr/local/include/google/protobuf/compiler'
/usr/bin/install -c -m 644 google/protobuf/compiler/plugin.proto '/usr/local/include/google/protobuf/compiler'
/bin/mkdir -p '/usr/local/include'
/bin/mkdir -p '/usr/local/include/google/protobuf/compiler/cpp'
それでも、バージョンは変更されず、カバーされていません。
- これが私のprotobufの現在の状態です。
root@test:~# whereis protoc
protoc: /usr/bin/protoc /usr/bin/X11/protoc /usr/local/bin/protoc /usr/share/man/man1/protoc.1.gz
root@test:~# pip show protobuf
Name: protobuf
Version: 3.4.1
Summary: Protocol Buffers
Home-page: https://developers.google.com/protocol-buffers/
Author: [email protected]
Author-email: [email protected]
License: 3-Clause BSD License
Location: /root/anaconda2/lib/python2.7/site-packages
Requires: six, setuptools
You are using pip version 9.0.1, however version 9.0.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
root@test:~# which protoc
/root/anaconda2/bin/protoc
root@test:~# protoc --version
libprotoc 3.4.0
root@test:~#
ブログ1:http://blog.csdn.net/elysion122/article/details/64523339的说法只能改变使用sudo命令下的提取位置、まだ自分でパスをプログラムする方法がわからない。
http://blog.csdn.net/whoamiyang/article/details/52947225我的安装来源液体到了路径、実はインストールすらしていないのではないかと思っています。新しいバージョンを持っているので、pipを使ってアンインストールします。重要なのは、どうやってcaffeに聞き分けてもらって、protobufを見つけるか、です。
私のカフェはコンピュータのprotobufを使用していると思われます。sudo make allを使用すると、言語が動作しないことを促されます。この時点で2.5のprotobufを使用しているので、ブログoneDefaults secure_path = /sbin:/bin:/usr/sbin:/usr/ bin:/usr/local/bin からのデフォルトパスを使用します。
make allを使うと、バージョンアップを促されます。私のCaffeでprotobufがどこにあるかわかればいいのですが。
正しいprotobufを見つければ、knowで利用できるかもしれません。
https://www.zhihu.com/question/58592005/answer/188884890
cmakeを使って出てきたのは
は、お使いのプロトコルバッファヘッダと互換性がありません。更新してください。
このエラー
-- Release CXX flags : -O3 -DNDEBUG -fPIC -Wall -Wno-sign-compare -Wno-uninitialized
-- Debug CXX flags : -g -fPIC -Wall -Wno-sign-compare -Wno-uninitialized
-- Build type : Release
--
-- BUILD_SHARED_LIBS : ON
-- BUILD_python : ON
-- BUILD_matlab : OFF
-- BUILD_docs : ON
-- CPU_ONLY : OFF
--
-- Dependencies:
-- BLAS : Yes (Atlas)
-- Boost : Yes (ver. 1.54)
-- glog : Yes
-- gflags : Yes
-- protobuf : Yes (ver. 2.6.1)
-- lmdb : Yes (ver. 0.9.16)
-- Snappy : Yes (ver. 1.1.0)
-- LevelDB : Yes (ver. 1.15)
-- OpenCV : Yes (ver. 2.4.8)
-- CUDA : Yes (ver. 8.0)
以下はすべてエラーになります。
CXX tools/upgrade_net_proto_text.cpp
CXX/LD -o .build_release/tools/upgrade_net_proto_text.bin
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(int, std:: string const&, google::protobuf::io::CodedOutputStream*)'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::io::CodedOutputStream::WriteStringWithSizeToArray(std:: string const&, unsigned char*)'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::internal::AssignDescriptors(std::string const&, google:: protobuf::internal::MigrationSchema const*, google::protobuf::Message const* const*, unsigned int const*, google::protobuf::MessageFactory *, google::protobuf::Metadata*, google::protobuf::EnumDescriptor const**, google::protobuf::ServiceDescriptor const**)'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::Message::GetTypeName() const'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::MessageLite::SerializeToString(std::string*) const'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::MessageFactory::InternalRegisterGeneratedFile(char const*, void (*)(std::string const&))'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::Message::DebugString() const'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::internal::OnShutdownDestroyString(std::string const*)'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(int, std:: string const&, google::protobuf::io::CodedOutputStream*)'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::MessageLite::ParseFromString(std::string const&)'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::internal::NameOfEnum(google::protobuf::EnumDescriptor const*, int)'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::internal::fixed_address_empty_string'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::internal::WireFormatLite::WriteString(int, std::string const& amp;, google::protobuf::io::CodedOutputStream*)'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::internal::WireFormatLite::ReadBytes(google::protobuf::io:: CodedInputStream*, std::string*)'
.build_release/lib/libcaffe.so: undefined reference to `google::protobuf::Message::InitializationErrorString() const'
collect2: error: ld returned 1 exit status
make: *** [.build_release/tools/upgrade_net_proto_text.bin] Error 1
root@test:/dev/LT/SegNet/caffe-segnet#
http://blog.csdn.net/xiexievv/article/details/47396725
フルパスで投げてもうまくいきません。
解答を開始する
<スパン このチュートリアルは、まだ動作しない半日を投げるために適している、無力。同様にアンインストールすることはできません(他の人とサーバーを共有する)。
<スパン 中心的な考え方は、システムが認識するプロトコルを見つけ、それをあなたが望むバージョンに置き換えることです。
必要なもの
<スパン 1. 必要なprotobufのバージョン
2.このバージョンをお客様がインストールされた場所
<スパン 3. システムが認識するprotobufのバージョンはどこですか?
<スパン 4. lib がどこにあるかをシステムに伝える
1 必要なprotobufをインストールする
特に説明することはありませんが、指定したディレクトリでprefixを使用するのが良いでしょう。.configure --helpでprefixの使用方法を見ることができます。
. /configure --prefix=/root/LT
2. インストールしたばかりのprotobufを探す
彼のlibフォルダにアクセスするため。
例えば、私はLTフォルダに読み込んだという点で珍しいです:通常の方法ではなく、このプロトックを覚えておいてください。
3. システムがプロトックを判断する場所を探す
端末入力:
また、コマンドラインでprotocを探し、その名前をprotoc_originのようなものに変え、欲しいバージョンを貼り付けることも可能です。そして、次のように入力します。
protoc --version
4. libprotobuf.conf を /etc/ld.so.conf.d フォルダ内に作成する。
すでに述べたようにLTというような変なフォルダの中にインストールしたので、そこに私のlibsがあります。そこで、/root/LT/lib と入力します。
その時にバージョンが変わりました。アンインストールできないので、いろいろと試してみたが、どれもうまくいかない。
caffeを使用する場合は はご遠慮ください。 makefile.configでanacondaを使うと、様々なpriorを自分で設定する必要がありますが、多分それで大丈夫でしょう。
なぜ無力と言うのか、それは作者から与えられていないからです。そして、分離の本体ヘッドですが、システムが認識するアドレスを変更することができず、置き換えることしかできません。私はbashrcを試してみましたし、私はコマンドラインから一時的なエクスポートを試してみましたし、私は、システムがLT上のprotobufを探すために取得することはできません。
関連
-
Build Record 2-CSS file not loaded-Solved-Resource interpreted as Stylesheet but transferred with MIME type text/plain
-
react error TypeError: 未定義のプロパティ 'setState' を読み取ることができません。
-
c++のエラーエラー: "***"の前に期待される初期化子
-
postman request prompt このリソースにアクセスするには完全な認証が必要です。
-
ローカルプロジェクトをgitlabにアップロードする
-
解決済み npm i -S express npm notice が package-lock.json としてロックファイルを作成しました。このファイルをコミットする必要があります。
-
OSError: [Errno 98] アドレスはすでに使用中です。
-
IOSの致命的なエラー: Optional値のアンラップ中に予期せずnilが検出された
-
[違反】スクロールブロックの「mousewheel」イベントに非パッシブなイベントリスナーを追加。
-
Application_Webservice の Global.asax ファイルの開始をトリガーすることはできません。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Java仮想マシンランチャーです。Java の例外が発生しました
-
未定義のエラーのプロパティ 'replace' を読み取ることができません。
-
error: config file .git/config をロックできない: パーミッションが足りない
-
javaは起動したが、終了コード=-805306369を返した。
-
Androidのパッケージ名変更とパッケージ名エラーに対応するクライアントが見つからない場合の解決策
-
ノード名とサービス名に対する解決策が提供されていない
-
URIが登録されていない (設定 | 言語とフレームワーク | スキーマとDTD)
-
閉じたファイルへのI/O操作。
-
zsh: コマンドが見つかりません: gradle
-
次のクラスが見つかりませんでした: - android.support.v7.internal.widget.