C++ 我能';t编译告诉链接器输入未使用的google测试(macOS)
我用下面的命令下载了google测试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
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