GitHub üzerinden ücretsiz build alma

  • Konuyu açan Konuyu açan pasha37
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 1
  • Gösterim Gösterim 137

pasha37

Üye
Üye
Mesaj
94
Çözümler
3
Beğeni
217
Puan
714
Ticaret Puanı
0
github üzerinden nasıl build alabileceğinizi göstericem, şuanki haliyle oldukça fazla vakit alıyor ancak cryptopp libini derli şekilde kullanıp libin derleme aşamasını kaldırırsanız ve yml dosyasındaki "-j4" kısımlarını "-j" olarak düzenlerseniz süre oldukça kısalacaktır. test için martysama 5.8 kullanıldı, derleme aşamalarını kendi dosyalarınıza göre düzenlemeniz gerekebilir.

İlk olarak bir github reposu oluşturun ve dosyalarınızı buraya aktarın.
Ardından ana klasöre .github/workflows şeklinde klasörler oluşturup içine "main.yml" isimiyle dosya açın ve aşağıdaki dosya içeriğini kopyalayın.
Burayı görüntülemek için üye girişi yapmalı veya kayıt olmalısınız.


Build almak için bu kısımlar yeterli her commit sonrası otomatik olarak başlayacaktır, build aşamalarını main.yml dosyası üzerinden düzenleyebilirsiniz. Build durumunu reponun web sayfasındaki actions kısmından görüntüleyebilirsiniz.

* Bilinen sorunlar ve çözümleri:
+ ...requires target feature ['avx2'/'ssse2'/'sha'/...], but would be inlined into function...
Örnek: chacha_avx.cpp:111:20: error: always_inline function '_mm256_add_epi32' requires target feature 'avx2', but would be inlined into function 'ChaCha_OperateKeystream_AVX2' that is compiled without support for 'avx2'
- cryptopp'u derlerken "-DCRYPTOPP_DISABLE_ASM" kullanmanız gerekiyor.

+ ...recompile with -fPIC
Örnek: ld: error: relocation R_386_PC32 cannot be used against symbol '__cxa_allocate_exception'; recompile with -fPIC
- cryptopp'u derlerken "-fPIC" kullanmanız gerekiyor.

+ ...no such file or directory: './libcryptopp.a'
Örnek: clang++ -m32 -DCRYPTOPP_DISABLE_ASM -fPIC -o cryptest.exe -DNDEBUG -g2 -O3 -pthread -pipe adhoc.o test.o bench1.o bench2.o validat0.o validat1.o validat2.o validat3.o validat4.o datatest.o regtest1.o regtest2.o regtest3.o dlltest.o fipsalgt.o ./libcryptopp.a
clang++: error: no such file or directory: './libcryptopp.a'
- cryptest.exe kısımlarını libcryptopp.a olarak düzenleyin.

+ Cryptopp düzenlemeleri nasıl yapılır?
s3ll_server\Srcs\Extern\cryptopp dizinindeki GNUmakefile dosyasını açın ve en üstteki "CXX" ve "CC" kısımlarını düzenleyin, cryptest.exe aratıp gereken düzenlemeleri yapın.
Örnek:
Orjinal:
Linkleri görebilmek için giriş yap veya kayıt ol.

Düzenlenmiş:
Linkleri görebilmek için giriş yap veya kayıt ol.


+ ./AsyncSQL.h:11:10: fatal error: 'mysql/mysql.h' file not found
- s3ll_server\Srcs\Server\libsql dizinindeki Makefile dosyasını açın, "IFLAGS = -I/usr/local/include/" bulun ve düzenleyin "IFLAGS = -I/usr/local/include/ -I../../Extern/include"

+ ...'boost/preprocessor/debug/error.hpp' file not found
- s3ll_server dizinindeki .gitignore dosyasını açın ve aşağıdaki kısımları kaldırıp eksik dosyalarıda git'e aktarın, extern klasörüde repo'da bulunmak zorunda.
Kod:
Genişlet Daralt Kopyala
Extern

Debug

Release

*.a

*.dll

*.lib

*.o

*.so

Kanıt
1.webp
 
Paylaşım için teşekkürler, bilmeyenler için github actions daha az efor göstererek işlerinizi daha hızlı halletmenize olanak sağlıyor. Özellikle otomatik olarak patchere güncelleme vermek için vs. kullanıldığında sizi de tembelleştiriyor diyebilirim :ROFLMAO:.

Konudaki kodda dikkat etmeniz gereken bir yer var bazen reponun ana branchı bazen main yerine master olabilir eğer master şeklinde kullanıyorsanız yml dosyasında ona göre düzenleme yapın.
Ayrıca repoya her commit pushladığınızda compile almak istemiyorsanız push actionunu değiştirebilirsiniz veya önerim de budur her task için ayrı branch açın örn. "messenger" sonrasında yaptıklarınızı tamamlayıp master/main brancha geçirin.
 
Geri
Üst