web-dev-qa-db-ja.com

パッケージlibprotobufがpkg-config検索パスで見つかりませんでした

Protobuf-c 1.3.2をインストールしています

./configureが表示された後

    protobuf-c 1.3.2

        CC:                     gcc
        CFLAGS:                 -g -O2
        CXX:                    g++ -std=c++11
        CXXFLAGS:               -g -O2
        LDFLAGS:                
        LIBS:                   

        prefix:                 /usr/local
        sysconfdir:             ${prefix}/etc
        libdir:                 ${exec_prefix}/lib
        includedir:             ${prefix}/include
        pkgconfigdir:           ${libdir}/pkgconfig

        bigendian:              no
        protobuf version:       libprotoc 3.8.0

だが pkg-config --cflags 'libprotobuf >= 1.0.0' 動かない。それは言う

Package libprotobuf was not found in the pkg-config search path.
Perhaps you should add the directory containing `libprotobuf.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libprotobuf' found

pkg-config --variable pc_path pkg-config番組

/usr/local/lib/x86_64-linux-gnu/pkgconfig:/usr/local/lib/pkgconfig:/usr/local/share/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig
1
Lohit raj

ソースからprotobuf-c Ubuntuリポジトリパッケージをビルドする理由は何ですか?ダウンロードしてコンパイルするのではなく、aptを使用してUbuntuリポジトリパッケージをインストールすることをお勧めします。 aptでイ​​ンストールした場合、更新が利用可能になると、protobuf-cは自動的に更新されます。したがって、aptを使用して両方の方法でインストールする方が安全であることがわかります。

現在サポートされているすべてのバージョンのUbuntuにプロトコルバッファCコンパイラ(protobuf-c)をインストールするには、ターミナルを開いて次のように入力します。

Sudo apt install protobuf-c-compiler  

Ubuntu 18.04では、このコマンドはprotobuf-cのバージョン1.2.1をインストールし、Ubuntu 19.04では、バージョン1.3.1をインストールします。

プロトコルバッファーは、構造化データをシリアル化するための柔軟で効率的な自動化メカニズムです。XMLに似ていますが、サイズが小さく、高速でシンプルです。データを一度構造化する方法を定義すると、特別に生成されたソースコードを使用して、さまざまな言語を使用して、さまざまなデータストリームとの間で構造化データを簡単に読み書きできます。 「古い」フォーマットに対してコンパイルされたデプロイ済みプログラムを壊すことなく、データ構造を更新することもできます。

1
karel

make install番組

make  install-am
make[1]: Entering directory '/home/lohit/Documents/practise/protobuf-c'
make[2]: Entering directory '/home/lohit/Documents/practise/protobuf-c'
 /bin/mkdir -p '/usr/local/lib'
 /bin/bash ./libtool   --mode=install /usr/bin/install -c   protobuf-c/libprotobuf-c.la '/usr/local/lib'
libtool: install: /usr/bin/install -c protobuf-c/.libs/libprotobuf-c.so.1.0.0 /usr/local/lib/libprotobuf-c.so.1.0.0
/usr/bin/install: cannot remove '/usr/local/lib/libprotobuf-c.so.1.0.0': Permission denied
make[2]: *** [Makefile:1103: install-libLTLIBRARIES] Error 1
make[2]: Leaving directory '/home/lohit/Documents/practise/protobuf-c'
make[1]: *** [Makefile:2192: install-am] Error 2
make[1]: Leaving directory '/home/lohit/Documents/practise/protobuf-c'
make: *** [Makefile:2186: install] Error 2

パスにアクセスする権限がありません。 make uninstall && Sudo make install機能しました。

0
Lohit raj