ubuntu14.04 gnu global 6.6をコンパイルする.3
2052 ワード
環境を振り回すつもりでgtagsが気に入ったので、Vim 8のC/C++シンボルインデックス:GTags編を参考に、まずコンパイルプロセスを記録することができます.
ソースコード
ソースコードのダウンロードと解凍
最新のコードを公式ダウンロードページで入手https://www.gnu.org/software/global/download.html
例えば私がダウンロードしたのは
ダウンロード後に解凍してディレクトリに入る
に頼る
インストール依存
コンフィギュレーション
再構成、構成時に--prefixを使用してインストールディレクトリを指定できます.sudo権限のないマシンで使用する必要があることを考慮して、ここではユーザーディレクトリの下にインストールされたusrを実行します.
コンパイル
直接makeを呼び出せばいい
makeはうまくいくと思っていたが、新聞が出てきた.
コンパイルパラメータを変更するのがおっくうで、直接ソースコードを変更して計算します
将
に改心
makeを再実行
インストール
インストール後
次のバージョンも確認できます
このリンクは次のとおりです.https://www.cnblogs.com/zqb-all/p/12005654.html
ソースコード
ソースコードのダウンロードと解凍
最新のコードを公式ダウンロードページで入手https://www.gnu.org/software/global/download.html
例えば私がダウンロードしたのは
wgets http://tamacom.com/global/global-6.6.3.tar.gz
ダウンロード後に解凍してディレクトリに入る
に頼る
インストール依存
sudo apt-get build-dep global
sudo apt-get install libncurses5-dev libncursesw5-dev
コンフィギュレーション
再構成、構成時に--prefixを使用してインストールディレクトリを指定できます.sudo権限のないマシンで使用する必要があることを考慮して、ここではユーザーディレクトリの下にインストールされたusrを実行します.
./configure --prefix=/home/zhuangqiubin/usr
コンパイル
直接makeを呼び出せばいい
make
makeはうまくいくと思っていたが、新聞が出てきた.
find.c: In function ‘findassign’:
find.c:557:2: error: ‘for’ loop initial declarations are only allowed in C99 mode
for (int i = 0; opts[i] != NULL; i++) {
^
find.c:557:2: note: use option -std=c99 or -std=gnu99 to compile your code
make[2]: *** [find.o] 1
make[2]: `/home/zhuangqiubin/usr/tools/global-6.6.3/gtags-cscope'
make[1]: *** [all-recursive] 1
make[1]: `/home/zhuangqiubin/usr/tools/global-6.6.3'
make: *** [all] 2
コンパイルパラメータを変更するのがおっくうで、直接ソースコードを変更して計算します
vim gtags-cscope/find.c +557
将
for (int i = 0; opts[i] != NULL; i++) {
に改心
int i;
for (i = 0; opts[i] != NULL; i++) {
makeを再実行
インストール
make install
インストール後
~/usr/bin/global
~/usr/bin/gtags
~/usr/bin/gtags-cscope
次のバージョンも確認できます
global --version
global (GNU GLOBAL) 6.6.3
Powered by Berkeley DB 1.85.
Copyright (c) 1996-2018 Tama Communications Corporation
License GPLv3+: GNU GPL version 3 or later
This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
このリンクは次のとおりです.https://www.cnblogs.com/zqb-all/p/12005654.html