Jeśli umieścisz plik CPP z innego pliku CPP, XCode odmawia złamania w dowolnym punkcie przerwania w dołączonym pliku CPP. Zamierzam zgłosić błąd z Apple, ale chciałem tylko wspomnieć o tym tutaj, na wypadek, gdyby inni doszli do tego i mogli znaleźć sposób obejścia tego problemu.Kod XCode nie włamuje się do # include'd plików CPP
Istnieją bardzo dobre powody, dla których możesz chcieć dołączyć pliki CPP z plików CPP, których nie będę tu wprowadzać. Wystarczy powiedzieć, że nie mogę w prosty sposób zmienić projektu, aby skompilować bezpośrednio zawarte pliki.
Przykład: bardzo prosty projekt iPhone
main.mm
extern void FunctionInSource1(int a);
int main(int argc, char * argv[])
{
FunctionInSource1(1);
return 0;
}
source1.cpp
#include "source2.cpp"
void FunctionInSource1(int a)
{
int b = a;
FunctionInSource2(b);
return;
}
source2.cpp
void FunctionInSource2(int b)
{
int c = b;
c = c + 1;
return;
}
main.mm i source1.cpp są elementami docelowymi, tzn. Są ustawione na kompilację. source2.cpp NIE jest członkiem obiektu docelowego i NIE jest kompilowany, chyba że został włączony do źródła1.cpp.
Ustawienie punktu przerw w dowolnym miejscu w pliku source2.cpp nie wyzwala. Punkty przerw w innych miejscach działają dobrze. N.B. Nadal możesz wejść na source2.cpp z source1.cpp na przykład, po prostu nie włamuj się bezpośrednio do źródła2.cpp
Jeśli ktoś wymyśli jakieś rozwiązanie, byłbym bardzo szczęśliwy, słysząc o tym.
Max
A nie korzystałeś z optymalizacji, aby kompilator wprowadził całą operację? –