- 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.
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:
Kanıt
İ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:
Düzenlenmiş:
+ ./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.
Ö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:
Extern
Debug
Release
*.a
*.dll
*.lib
*.o
*.so
Kanıt