如何设置Visual Sutio代码以从多个.cpp文件编译可执行文件? 我有以下目录结构:
src
test
build
在“ src”中,我有一些带有程序的.cpp文件,而在“ test”中,我有一些main.cpp文件,
#include <gtest/gtest.h>
int main(int argc, char *argv[]) {
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
和带有书面测试的几个.cpp文件。
如何编译它,以便将所有.cpp都包括在内(链接?)并执行测试?
现在我被困在编译main.cpp上,结果当然是
[==========] Running 0 tests from 0 test suites.
[==========] 0 tests from 0 test suites ran. (0 ms total)
[ PASSED ] 0 tests.
我需要这很简单,并且出于Google测试培训的目的,从不处理make makefile,CMake等。
答案 0 :(得分:0)
感谢所有提示。经过很长时间的休息(将我的知识更新为最新的C ++标准和实践/规则)后,我处于“再教育”过程。
我只是通过使用g ++命令和所有文件路径创建可执行文件来进行解决-正常工作,但是当涉及到我要练习的更复杂的示例时,这将非常不方便(即使仅用于培训) gtest,现在我需要重点关注。)
不幸的是,我尝试使make偶然发现了现在包含的头文件的问题-我不明白为什么在直接使用g ++命令时它会正常工作。你能给一些提示/提示吗?
这是makefile:
# Makefile
SOURCES=$(wildcard *.cpp */*.cpp */*/*.cpp)
DEPS=$(wildcard *.hpp */*.hpp */*/*.hpp)
main:
g++ $(SOURCES) -lgtest -o $@ -pthread
目录树:
├── build
│
├── src
│ ├── Message.cpp
│ ├── Message.hpp
│ ├── SendMessage.cpp
│ ├── SendMessage.hpp
│ └── Transport
│ ├── AbstractTransport.cpp
│ ├── AbstractTransport.hpp
│ ├── EmailTransport.cpp
│ ├── EmailTransport.hpp
│ ├── SlackTransport.cpp
│ └── SlackTransport.hpp
├── tests
│ ├── Message
│ │ ├── EmailTransportTest.cpp
│ │ ├── Message.cpp
│ │ ├── SendMessage.cpp
│ │ └── SlackTransportTest.cpp
│ └── main.cpp
└── makefile