У меня есть файлы Main.cpp
, Tokenizer.hpp
и Tokenizer.cpp
. Я пытался отлаживать с помощью Visual Studio 2019 и пытался «шагнуть в» метод, который объявлен в Tokenizer.hpp
и реализован в Tokenizer.cpp
, но он не работал должным образом и просто перепрыгнул через метод, не заходя в Это. Я попытался переместить реализацию метода на Tokenizer.hpp
, а затем он работал как положено и вошел в него при отладке.
Я использую только Visual Studio 2019 для отладки. Makefile, который я использую для компиляции, находится здесь:
CXX=cl
CXXFLAGS=/Zi
SRCS=Tokenizer.cpp
OBJS=$(SRCS:.cpp=.obj)
.PHONY: all
all: $(OBJS)
$(CXX) $(CXXFLAGS) Main.cpp $(OBJS)
%.obj: %.cpp
$(CXX) $(CXXFLAGS) -c $<
.PHONY: clean
clean:
del *.obj
Три файла, которые я использую, находятся здесь:
// Main.cpp
#include "Tokenizer.hpp"
int main() {
t.GetNextToken(); // Doesn't step into unless I move the
// implementation from Tokenizer.cpp to Tokenizer.hpp
}
// Tokenizer.hpp
class Tokenizer {
public:
int GetNextToken();
};
// Tokenizer.cpp
#include "Tokenizer.hpp"
int Tokenizer::GetNextToken() { /*Do stuff*/ return 0;}