2016-07-15 3 views
3

Я пытаюсь установить Google Test в соответствии с this answer на Ubuntu без доступа root, так как мне нужно учиться и использовать его на работе.Как установить Google Test на Ubuntu без доступа root?

удалось получить эти сделано в моей папке пользователя:

$ mkdir ~/temp 
$ cd ~/temp 
$ unzip gtest-1.7.0.zip 
$ cd gtest-1.7.0 
$ mkdir mybuild 
$ cd mybuild 
$ cmake -DBUILD_SHARED_LIBS=ON -Dgtest_build_samples=ON -G"Unix Makefiles" .. 
$ make 

Кажется, у меня уже есть GTEST в/USR/SRC/GTEST Altough Я не хочу использовать это, потому что это был не я который установил его, и я не уверен в его версии и в ее доступности. Невозможно даже удалить его без разрешения.

Еще инструкция заканчивается, как:

$ cp -r ../include/gtest ~/usr/gtest/include/ 
$ cp lib*.so ~/usr/gtest/lib 

Что я здесь отсутствует?

+0

может быть, если вы попросите об этом на http://askubuntu.com/ –

ответ

4

Предположим, вы хотите установить googletest в /home/me/googletest.

Просмотреть googletest GitHub repo https://github.com/google/googletest. (Не используйте возможно -out-просрочен версию вы можете получили в другом месте.)

Использование Clone или Загрузить ссылку, либо клон или скачать-и экстракт в качестве источника (скажем) ./googletest под вашим текущим справочником CWD (где CWD не /home/me/).

Тогда в CWD: -

$ mkdir googletest_build 
$ cd googletest_build 
$ cmake -DCMAKE_INSTALL_PREFIX:PATH=/home/me/googletest ../googletest 
$ make 
$ make install 

После этого вы найдете: -

/home/me/googletest/ 
       lib/ 
        libgmock.a 
        libgmock_main.a 
        libgtest.a 
        libgtest_main.a 
       include/ 
         gmock/ 
          # gmock header files 
         gtest/ 
          # gtest header files 

Вы можете использовать заголовки GTEST/gmock в исходном коде, как:

#include <gtest/gtest.h> 
#include <gmock/gmock.h> 

и скомпилировать и связать программу gtest/gmock как:

g++ -pthread -I/home/me/googletest/include -c -o my-unit-tester.o my-unit-tester.cpp 
g++ -o my-unit-tester my-unit-tester.o -L/home/me/googletest/lib -lgtest -lgmock -pthread 

с помощью опции -I..., чтобы сообщить компилятору, где GTEST/gmock заголовки жить и с помощью опции -L... сказать компоновщик, где GTEST/gmock библиотеки проживают.

Передача -pthread как для компилятора, так и для компоновщика, так как библиотеки gtest/gmock построены по многопоточности по умолчанию.

После установки вам больше не нужно ни CWD/googletest, ни CWD/googletest_build.

Возможно, вы захотите передать дополнительные опции cmake, и в этом случае продукты сборки будут отличаться по смыслу этих дополнительных параметров.

+0

Обязательно попробуете завтра, спасибо за объяснение вида сэр. – MattSom

+0

После выполнения команды установки это то, что я получаю: ** _ make: *** Нет правила, чтобы сделать цель «install». Остановить ._ ** Что это значит? мой дом/я/googletest остался пустым. – MattSom

+0

Получили ли вы и использовали последний исходный источник googletest из https: // github.com/google/googletest, как говорит ответ? –

Смежные вопросы