在设置Google Test时无法找到-lgtest

use*_*232 5 c++ googletest

我正在使用Google Test for C++并尝试在我的linux机器上进行设置.我的make文件包含以下代码:

CC=g++ 
CFLAGS=-I $(GOOGLETESTDIR)/include -L $(GOOGLETESTDIR)/lib -lgtest -lpthread -Wall
DEPS=fib.h
OBJS=fib.o main.o

all: | r6

clean:
    -rm -f r6 $(OBJS)

%.o: %.cpp $(DEPS)
    $(CC) -c -o $@ $< $(CFLAGS) 

r6: $(OBJS)
    $(CC) -o $@ $^ $(CFLAGS) 
.PHONY: all clean
Run Code Online (Sandbox Code Playgroud)

我运行make时遇到错误:

/usr/bin/ld: cannot find -lgtest
Run Code Online (Sandbox Code Playgroud)

我该如何解决?我是这种测试的新手,而不是linux的新手,所以我真的输了.

mna*_*gel 9

我在Ubuntu 17.10上遇到过这个问题,基本上亚历山大所说的是真的.

有人写了一个很好的教程,其中包含明确的命令,可以在https://www.eriksmistad.no/getting-started-with-google-test-on-ubuntu/找到

归结为:

sudo apt install libgtest-dev cmake
cd /usr/src/gtest
sudo cmake CMakeLists.txt
sudo make
sudo cp *.a /usr/lib
Run Code Online (Sandbox Code Playgroud)

就个人而言,我会很感激一个没有手动移动文件的解决方案/usr/lib,但从好的方面来看,它可以按原样运行.

  • `sudo ln -s /usr/src/gtest/libgtest_main.a /usr/local/lib/libgtest_main.a` `sudo ln -s /usr/src/gtest/libgtest.a /usr/local/lib/libgtest.a`一个` (2认同)

Ale*_*aev 0

截至目前,Google 测试框架尚未附带预构建的二进制文件;你需要自己构建它们。有关如何执行此操作的完整详细信息,请参阅 README(对于 Debian,路径为 /usr/src/googletest/googletest/README.md)。