2016-04-05 21 views
0

UPDATE: Artık .cpp dosyasını (derleme çıktısını görebilirsiniz) ile derleyebildim. Ancak, değişiklikler etkilenecek gibi görünmüyor. Çalıştırdıktan sonra bilgisayarı yeniden başlatıyorum, ancak yine de bir değişiklik yapıyorum.Bir .cpp dosyasının içeriğini değiştirme

Muhtemelen anladığınız gibi, C++ ile çok sınırlı deneyime sahibim. Şu anda bir proje (OpenBTS) üzerinde çalışıyorum ve proje oluşturulduktan ve yüklendikten sonra .cpp dosyalarından birinde bir hata bulduk. Sorum şu ki, .cpp dosyasının içeriğini nasıl değiştirebilirim (bir JSON veri referansının dizgesini değiştirebilirim) ve sonra da değişiklikleri sonradan görebilirim? Proje inşa edilmiş ve başarıyla derlendi olarak ben tek bir dosya ile, derleyici bulamadığını çalıştığınızda, nasıl gelip, 2. yönteme ilişkin

1. 
make 'filename.cpp' 
make: Nothing to be done for 'filename.cpp' 

2. 
make 'filename' 
g++ 'filename.cpp' -o 'filename' 
In file included from 'filename.cpp:29:0: 
'filname.h':26:21: fatal error: Timeval.h: No such file or directory 
#include <Timeval.h> 
compilation terminated. 

3. Run make from root directory: 
Nothing to be done for 'all.' 

4. Run make clean and make from root. This rebuilds the project but the 
changes are still not in effect (I can see that the JSON String is not 
changed at the webserver). 

5. Run ./build.sh script. Still no changes. 

:

Şu anda aşağıdaki denedi başlık dosyaları? Değiştirdiğim tek şey "ARFCN" den "ARFCNtest" e kadar bir dizeydi. Birbirine bağlı olarak yaklaşık 50 başlık dosyası bulunduğundan, <> 'dan ""' e kadar olanları değiştirmek ve her bir dosyayı aynı dizine kopyalamak atık ve gereksiz bir işlem gibi görünüyor mu?

+0

OpenBTS ile ilgili bir deneyimim yok, ancak "make" ile "make" yapmanın neredeyse kesinlikle yapması gerekiyor. o zaman, daha önce oluşturduğunuz değiştirilmiş paketi _installing_ (veya başka bir şekilde dağıtıyor) musunuz? Orijinal süreci durdurup yeniden başlattın mı? – davmac

+0

Değiştirmeye çalıştığım .cpp dosyası bir web sunucusuna JSON veri gönderiyor, bu yüzden "make make" (temizle) ve make (make) işlemlerinden sonra denediğimi düşünmek bilgisayarı yeniden başlatmaktı. Ancak, JSON verilerinde .cpp dosyasının derlenmediği veya olması gerektiği anlamına gelen herhangi bir değişiklik göremiyorum. –

+0

Özellikle olası değil; normalde “yerinde” bir şey inşa etmeyecektiniz (belki de bazı dinamik dil çerçeveleri için, ancak genellikle C/C++ projeleri için değil). Yeniden başlatmadan önce yerleşik ikiliyi doğru konuma kopyalamanız gerektiğinden şüpheleniyorum. Aslında neyin çalıştığını görmek ve uygulamanızın pidini bulmak için komut satırında ps -Af 'ı deneyin, sonra ikili bağlantıya ulaşmak için '/ proc' girişini ('/proc/xxx/self') kontrol edin. – davmac

cevap

0

Derleme başarısız olduğundan değişiklikler etkili olmadı. Soruda alıntı yaptığınız hata mesajına bakın. Düzelt ve yeniden oluştur.

Bu arada, bilgisayarınızı yeniden başlatmanız gerekli olmamalıdır. Makefile bağımlılıkları doğru bir şekilde ifade ederse, make clean bile gerekli olmamalıdır. (Bu durumda, , değiştirdiğiniz kaynak dosyayı yeniden derlemek için'u denediğinden böyle görünüyor.)

İlgili konular