Shared object building makefiles with applications for ip protection
Dosyalar
Tarih
Yazarlar
Dergi Başlığı
Dergi ISSN
Cilt Başlığı
Yayıncı
Erişim Hakkı
Özet
Bu tez çalışması kapsamında, 3. parti bilimsel kütüphanelerin sağladığı esneklikten faydalanmak, programların birlikte çalışabilirliğini arttırmak, gerek C/C++ kaynak kodlarının derlenme ve bağlanma işlemlerinin yapılması, gerekse bir projenin klasör yapısının taranarak bağımlılıkların bulunması ve bu bağımlılıklara göre projenin derleme işlemine geçilmesi için karmaşık, kapsamlı, kullanımı kolay ve otomasyona dayalı bir jenerik makefile tasarımı yapılmıştır. Bu makefile sayeside 3. parti kütüphaneler derlenerek çalışma zamanı sırasında başka programlara bağlanabilecek paylaşımlı nesneler oluşturulacaktır. Makefile tarafından derlenecek projelerin bir klasör hiyerarşisi içerisinde barındırılması beklenmektedir. Klasör hiyerarşisi makefile tarafından otomatik olarak tanınmakta, projeler için gerekli olan kütüphaneler otomatik olarak tespit edilmekte ve kütüphane bağlımlılıklarının çakışması ile başa çıkılmaktadır. Sonrasında projeler derlenerek çalıştırılabilir program haline getirilmektedir. Derlenen paylaşımlı nesne kütüphaneleri run time sırasında bu çalıştırılabilir programa bağlanacaktır. Programın çalışma zamanında nasıl davranacağı bu kütüphanelerdeki kod parçacıkları vasıtasıyla belirlenecektir. Makefile projesinin jenerik olması sayesinde, araştırmalar yapılırken, kütüphanelerin derlenmesi ve bağlanması aşamasındaki aşağı seviyeli ayrıntılarla uğraşılmadan bütün kodlar tek bir komutla derlenebilmekte ve uygulama dosyaları üretilebilmektedir. Böylelikle projelerini Linux ortamında geliştirmek isteyenler 3. parti kütüphanelerin bağımlılıklarından soyutlanarak herhangi bir konfigürasyon yapmadan bu kütüphaneleri kullanarak zaman kazanacak ve projelerinin kendilerini ilgilendiren teknik detaylarına odaklanacaklardır. Bu sayede bilimsel çalışmaların süresi önemli ölçüde azaltılmaktadır.
Within the scope of this thesis, in order to take advantage of the flexibility provided by 3rd party scientific libraries, to increase the interoperability of programs, to compile and dynamically link C/C++ source codes, to find dependencies by scanning a folder structure of a project, a complex, comprehensive, easy-to-use and automation-based generic makefile project is designed. Through this makefile, 3rd party libraries will be compiled to create shared objects that can be linked to other programs during runtime. It is expected that the projects to be compiled by makefile will be hosted in a folder hierarchy. The folder hierarchy is automatically recognized by the makefile, the libraries needed for the projects will be automatically detected and the conflicts of library dependencies will be resolved. At the end of these processes, the projects are compiled into executable programs. The compiled shared object libraries will be linked to this executable during run time. How the program behaves at run time will be determined by code snippets in these libraries. Thanks to the generic nature of the makefile project, all the code can be compiled with a single command and application files can be generated without the need to deal with low-level details during the compilation and linking of libraries. In this way, those who want to develop their projects in Linux environment will be isolated from the dependencies of 3rd party libraries and will save time by using these libraries without any configuration and will focus on the technical details of their projects. In this way, the duration of scientific studies is significantly reduced.








