A
Anonimİm
Super Member
- Joined
- May 10, 2021
- Messages
- 194
- Reaction score
- 43
MERHABA ;
Linux'de kitaplık oluşturmaya aşinaysanız, varsayılan olarak tüm dll simgelerinin/sembollerinin dışa aktarıldığını bilirsiniz. Bu, sadece .so olarak oluşturduğunuzda ve işiniz bittiğinde kitaplıkları oluşturmayı çok kolaylaştırır, her yerde declspec (dllexport) gibi gereksiz dosyalara gerek yoktur.
Maalesef Windows'ta, yukarıda bahsettiğim declspec ile dışa aktarılacak işlevleri manuel olarak işaretlemeniz gerekli. Standart kitaplığı kullanırsanız, bu durum c++ 'da daha da kötüleşir çünkü standart kitaplık işlevlerinide declspec olarak işaretlemeniz gerekir, ancak kaynak dosyaları değiştirmeden yapamazsınız. Bunun mantıklı çözümü, istediğiniz C++ nesnelerini oluşturan yöntemlerini yazmak ve ardından bu yöntemleri dışa aktarmaktır.
Size Windows'daki tüm sembolleri nasıl dışa aktaracağınızı göstereceğim. Bu, declspec etiketleri olmadan mevcut bir kod tabanını alabileceğiniz, dll / lib olarak derleyebileceğiniz anlamına gelir. Ve sonra bir kaynak kodu değişikliği olmadan istediğiniz işlevleri kullanabilirsiniz.
Aşşağıdaki adımları uygulayın ;
1) Derleme sisteminiz olarak cmake kullanın.
2) Bu kodu değerlendirin.
(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
GİTHUB
Linux'de kitaplık oluşturmaya aşinaysanız, varsayılan olarak tüm dll simgelerinin/sembollerinin dışa aktarıldığını bilirsiniz. Bu, sadece .so olarak oluşturduğunuzda ve işiniz bittiğinde kitaplıkları oluşturmayı çok kolaylaştırır, her yerde declspec (dllexport) gibi gereksiz dosyalara gerek yoktur.
Maalesef Windows'ta, yukarıda bahsettiğim declspec ile dışa aktarılacak işlevleri manuel olarak işaretlemeniz gerekli. Standart kitaplığı kullanırsanız, bu durum c++ 'da daha da kötüleşir çünkü standart kitaplık işlevlerinide declspec olarak işaretlemeniz gerekir, ancak kaynak dosyaları değiştirmeden yapamazsınız. Bunun mantıklı çözümü, istediğiniz C++ nesnelerini oluşturan yöntemlerini yazmak ve ardından bu yöntemleri dışa aktarmaktır.
Size Windows'daki tüm sembolleri nasıl dışa aktaracağınızı göstereceğim. Bu, declspec etiketleri olmadan mevcut bir kod tabanını alabileceğiniz, dll / lib olarak derleyebileceğiniz anlamına gelir. Ve sonra bir kaynak kodu değişikliği olmadan istediğiniz işlevleri kullanabilirsiniz.
Aşşağıdaki adımları uygulayın ;
1) Derleme sisteminiz olarak cmake kullanın.
2) Bu kodu değerlendirin.
(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
GİTHUB