C++ 我能';t编译告诉链接器输入未使用的google测试(macOS)

C++ 我能';t编译告诉链接器输入未使用的google测试(macOS),c++,c++11,g++,googletest,macos-high-sierra,C++,C++11,G++,Googletest,Macos High Sierra,我用下面的命令下载了google测试 wgethttps://github.com/google/googletest/archive/release-1.8.0.zip 我运行以下命令将库安装到macOS 10.13.5 解压版本-1.8.0.zip cd googletest-release-1.8.0 mkdir构建 光盘制作 克马克。。 制作 sudo制作安装 我尝试使用命令g++-c-std=c++11-stdlib=libc++-lgtest-lgtest\u main-pthr

我用下面的命令下载了google测试

wgethttps://github.com/google/googletest/archive/release-1.8.0.zip

我运行以下命令将库安装到macOS 10.13.5


解压版本-1.8.0.zip
cd googletest-release-1.8.0
mkdir构建
光盘制作
克马克。。
制作
sudo制作安装

我尝试使用命令
g++-c-std=c++11-stdlib=libc++-lgtest-lgtest\u main-pthread-o cpptest test.cpp来编译测试代码,如下所示

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

TEST(firstTest, abs)
{
   EXPECT_EQ(1, abs( -1 ));
   EXPECT_EQ(1, abs( 1 ));
}

int main(int argc, char **argv) {
     std::cout << "Running main() from testmain.cc\n";

     testing::InitGoogleTest(&argc, argv);
     return RUN_ALL_TESTS();
 }

有人能解决这个问题吗?

g++-c
用于将源文件编译成目标文件。此阶段不链接可执行文件,即不使用链接器,因此不使用链接器标志
-lgtest-lgtest\u main
。如果你想编译一个可执行文件,正确的compand将不带
-c

g++ -std=c++11 -lgtest -lgtest_main -pthread -o cpptest test.cpp

注意,我已经删除了
-stdlib的非必需用法

谢谢您的回复!我已经能够编译代码了。
g++ -std=c++11 -lgtest -lgtest_main -pthread -o cpptest test.cpp