30.12.14

VMware Player için sistemdeki Hyper-V rolünü kaldırmak

Vmware Player kullanmak istediğinizde sisteminizde önceden tanımlanmış Hyper-V rolü varsa kaldırmanız gerekmektedir.
Bilgisayarında daha önce virtual machine çalıştırmamış olanlar ilk olarak sanallaştırma teknolojilerine bios üzerinden izin vermelidirler. Bunu yaptıktan sonra Vmware Player kurulumunu gerçekleştiriyoruz.
Kurulum sonrasında yeni bir sanal makine oluşturarak kullanmak istediğimiz işletim sistemini yüklemeye çalışıyoruz. Eğer sisteminizde önceden tanımlı Hyper-V rolü varsa bunu kapatmamız gerekiyor aksi takdirde sistem aşağıdaki hatayı veriyor;
VMware Player and Hyper-V are not compatible. Remove the Hyper-V role from the system before running VMware Player.
Bu hatadan kurtulmak için Hyper-V rolünü kapatmamız gerekiyor,
Hyper-V rolünü kapatmak için, command prompt ekranını yönetici olarak açıyoruz ve aşağıdaki komutu giriyoruz;
bcdedit /set hypervisorlaunchtype off
Hyper-V rolünü açmak içinse, command prompt ekranını yönetici olarak açıyoruz ve aşağıdaki komutu giriyoruz;
bcdedit /set hypervisorlaunchtype auto
Umarım yardımı dokunur.
Kaynak : http://superuser.com/questions/519991/vmware-player-is-not-working-after-installing-hyper-v-on-windows-8-pro

17.12.14

Visual Studio İçerisinde Entity'den Kaynaklı Hataları Görme - EntityValidationErrors

Çoğu zaman veri tabanında tanımladığımız veri yapılarından kaynaklı olan exceptionlar eğer bir entity yardımıyla çalışıyorsak EntityValidationErrors şeklinde hatalar fırlatır. Bu hataların sebebini görüntülemek diğer hatalar kadar kolay değildir.
'EntityValidationErrors' hatalarını görüntülemek amacıyla Visual studio ortamına bir watch objesi ekliyoruz. Bu objenin tanımı ise şu şekilde;
((System.Data.Entity.Validation.DbEntityValidationException)$exception).EntityValidationErrors
Bu tanım yardımıyla artık objenin altındaki dallanmaları takip ederek hatanın sebebini öğrenebiliyoruz.
Umarım benim gibi ihtiyaç duyan herkesin işine yaramıştır, bol kodlu günler.

9.12.14

SQL Server üzerinde 'sa' şifresini unuttum!

SQL kullananların belki de en korkulu rüyası yönetici haklarına sahip sa kullanıcısının şifresinin unutulmasıdır. Bugünlerde bende aynı derdi tekrar tekrar yaşadığım için internette site site gezeceğime defterimde çözümü bulunsun istedim.
Başlat menüsünden Çalıştır kısmına cmd yazarak command prompt u açıyoruz.
Sonrasında bağlanmak istediğimizi serverin ismini öğrenmemiz gerekiyor eğer zaten biliyorsak (3) adımından devam ediyoruz.
Bilmiyorsak ise command prompt ekranına osql –L yazarak listeden aradığımız server ismini buluyoruz.
Sonrasında ilgili serverla ilgili işlemler yapacağımız için OSQL -S <serveradi> -E kodu yardımıyla server işlem satırına geçiyoruz. İşlem satırında satır satır bize bölümler gelecek bu kısımlara aşağıdaki kod kümelerini yazıyoruz;
1> EXEC sp_password NULL, ‘<yeniSifreniz>’, ‘sa’
2>GO
Bu işlemlerden sonra yeni şifreniz aktif olacaktır. Umarım sizin de sorununuzu çözmüştür.
Not: Şifre kriterlerini uygun girmek gerekiyor, büyük-küçük harf, harf ve sayi, noktalama işaretleri gibi yoksa şifreniz kriterlere uymuyor diye bir mesaj alabilirsiniz.

10.11.14

Visual Studioda geliştirilen kodlarda static json verilerini kullanmak

MVC.NET uygulamaları geliştirirken bazen static .json uzantılı verileri kullanmak isteyebiliriz. Bu tür verilerin kullanıldığı uygulamalara örnek verecek olursak;
  • Harita üzerinden yer gösterme ve link verme
  • E-Dergi modülleri
  • Atama uygulamaları vb.
Kullanılan static veriler ne yazık ki varsayılan visual studio ayarlarıyla IIS tarafından okunamaz. Karşımıza şu şekilde bir hata gelir;
HTTP Error 404.3 - Not Found The page you are requesting cannot be served because of the extension configuration. If the page is a script, add a handler. If the file should be downloaded, add a MIME map.
Bu hatayı gidermek için web.config içerisindeki iis ayarlarını güncellememiz gerekmektedir. web.config içerisine girerek staticContent taglerini eklemeliyiz.
<system.webServer>
 <staticContent>
 <mimeMap fileExtension=".json" mimeType="application/json" />
 </staticContent>
 </system.webServer>
web.config'in son haline baktığımızda ise ilgili kısım şu şekilde olur;
<?xml version="1.0"?>
<configuration>
 <system.web>
 <compilation debug="true" targetFramework="4.0"/>
 </system.web>
 <system.webServer>
 <staticContent>
 <mimeMap fileExtension=".json" mimeType="application/json" />
 </staticContent>
 </system.webServer>
</configuration>

22.8.14

Morris.js Donut Grafiğinin kullanımı

Javascript tarafında önceden " jqplot.js " kütüphanesini kullanıyordum. Sitelerde gezerken "morris.js" kütüphanesine rastladım. Görsel yönü daha kuvvetli olan bu kütüphane yardımıyla daha güçlü grafikler oluşturabilirsiniz.
Bu yazımda javascript tarafında grafik çizdirmek için faydalı bir kütüphane olan " morris.js " yardımıyla örnek donut grafiği çizimini ele alacağım.
Öncelikle grafiği çizmek için html tarafında düzenlemeler yapıyoruz.
<script src="http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.0/raphael-min.js">
 </script>
 <script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
 <script src="http://cdn.oesmith.co.uk/morris-0.4.1.min.js"></script>
 <meta charset=utf-8 />
 <title>Morris.js Donut Chart Örneği</title>
 <body>
 <div id="ornek-donut"></div>
 </body>
İlgili kütüphaneleri ekledikten sonra grafiğin görünmesini istediğimiz div elemanına grafik elemanına uygun bir isim veriyoruz. Burada "ornek-donut" adını verdim. Sonrasında script tarafına geçerek grafiğin asıl çizilmesini sağlayan kısmı oluşturuyoruz.
Morris.Donut({
 element: 'ornek-donut',
 data: [
 {label: "Türkiye", value: 12},
 {label: "Çek Cumhuriyeti", value: 30},
 {label: "Almanya", value: 20}
 ],
 labelColor: '#000000',
 colors: [
 '#429A3C',
 '#0068A6',
 '#E81922'
 ],
 formatter: function (x) { return x + "%" }
 });
Bu kısımda element grafiği nereye çizeceğini, data grafikte gösterilmesi istenen elemanları, labelColor grafiğin içinde gözüken etiketleri colors ise grafik renklerini ifade ediyor. Herhangi bir format vermek isterseniz formatter grafiğin etiketine göndereceğiniz formatı düzenliyor.
Örnek grafik sayfası için:
İlgili kütüphane için:

8.8.14

C# içerisinde sayı ve karakter içeren, rastgele, istenen boyutta, kod üretmek

C# içerisinde sayı ve karakter içeren istenen boyutta kod üretmek için ilgili fonksiyonu kullanabiliriz. Bu fonksiyonlar kullanıcılar için şifre türetme, belgeler için rastgele numaralar türetme işlemlerinde kullanılmaktadır.
Zamanla bu fonksiyonları çoğaltacağım. Şimdilik tek bir örnek üzerinden gidiyorum umarım işinize yarar;
public static string DosyaNumarasiTuret() {
  var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
  var random = new Random();
  var result = new string(
  Enumerable.Repeat(chars, 8)
  .Select(s => s[random.Next(s.Length)])
  .ToArray());
  return result;
  }

Javascript foreach kullanımı

Javascript tarafında sürekli foreach kullanımını başka sitelerden hatırlamak giderek zor olmaya başladığı için el altında bulunsun istedim,
  • Array içerisinde arama;
$.each([ 47, 26 ], function( index, value ) {
 alert( index + ": " + value );
 });
Ürettiği sonuç;
 0: 47
 1: 26
  • Obje içerisinde arama;
var object = {
 "Seckin": "Programci",
 "Ali": "Yönetici"
 };
$.each( object , function( key, value ) {
 alert( key + ": " + value );
 });
Ürettiği sonuç;
 Seckin: Programci
 Ali: Yönetici

25.7.14

Web Projelerinde Karşılaşılan Tarih Uyumsuzluğu Sorunu/Çözümü

Web arayüzlerinde veritabanından tarih, saat verileri çekilirken kullanıcıların bilgisayarlarına ve projenin yüklendiği sunucunun yerel saat ve dil ayarlarına bağlı olarak değişik zaman/ tarih formatlarıyla karşılaşılmaktadır.
Bu tarih/zaman formatlarının istenen bir yapıda alınması ve kullanıcıya sunulması gerekmektedir. Bu tür sorunların giderilmesi için tüm yerel zaman dilimlerinde çalışacak standart bir formata ihtiyaç duyulmaktadır. Formatın standart hale getirilmesi için şu adımlar izlenmelidir;
 
Oluşturulan web projelerinde bulunan Global.asax dosyası içerisine almak istediğiniz tarih formatını ve kültür bilgisini girmeniz gerekmektedir. Böylece uygulama açıldığı bilgisayarın veya koştuğu bilgisayarın saat diliminden bağımsız olarak kendisine verilen saat dilimini kullanacaktır;
Bu örnek içerisinde tarih formatı Gün/Ay/Yıl şeklinde alınmıştır. dd/MM/yyyy şeklinde alınan format yardımıyla
- 5/12/2014 gibi verilerin 05/12/2014
- 5/4/2014 gibi verilerin 05/04/2014 şeklinde alınması sağlanır.
protected void Application_BeginRequest(object sender, EventArgs e) 
{
CultureInfo cInfo = new CultureInfo("tr-TR");
cInfo.DateTimeFormat.ShortDatePattern = "dd/MM/yyyy";
cInfo.DateTimeFormat.LongDatePattern = "dd/MM/yyyy";
cInfo.DateTimeFormat.DateSeparator = "/";
Thread.CurrentThread.CurrentCulture = cInfo;
Thread.CurrentThread.CurrentUICulture = cInfo;
}

6.7.14

HTML Ampersand Karakter Kodları

Html kodu içerisinde kullanmamız gerektiğinde direk kullanıldığında hatalara yol açan bazı karakterler vardır; &, > ve < vb. Bu tür karakterlerin kullanımından kaçınılması istense de kullanıcılara verilen şifrelerde veya site içeriklerinin herhangi bir yerinde bu tür karakterleri kullanmamız gerekebilir. Bu işaretleri html tag leri içerisinde kullanabilmek için dili bozmayacak karşılıklarını kullanmak gerekmektedir. Bu işaretlerin eşlenikleri ise şöyledir;
&quot;"Double quote
&amp;&Ampersand ("and" sign)
&lt;<Less-than
&gt;>Greater-than
&nbsp; un-linebreak-able space
&iexcl;¡Upside-down !
&cent;¢Cent sign (c crossed out)
&pound;£Pound sign: the currency symbol
not the tic-tac-toe telephone symbol, which is incorrectly called "pound".
&curren;¤circle with dashes at NE, SE, SW, and NW
&yen;¥Y crossed out
&brvbar;¦Vertical line, maybe with gap in middle
&sect;§Section sign (like hurricane symbol on weather maps)
&uml;¨Two dots up in the air
&copy;©Copyright sign (C in a circle)
&ordf;ªlower case "a" up in the air
&laquo;«Two small less-than signs: the German open-quote
&not;¬Not sign from classical logic
&shy; "Soft" hyphen: a dash
&reg;®Registered sign (R in a circle)
&macr;¯Macron (horizontal line up in the air)
&deg;°Degree sign
&plusmn;±Plus-or-minus sign
&sup2²2 up in the air
&sup3;³3 up in the air
&acute;´Little dash pointing to North-East
&micro;µMicro sign, lower case Greek Mu
&para;Paragraph sign (mirror image capital P with two legs and a black eye)
&middot;·Decimal Point (English style, mid-level)
&cedil;¸Small sickle shape, low down
&sup1;¹1 up in the air
&ordm;ºlower case "o" up in the air
&raquo;»Two small greater-than signs: the German close-quote
&frac14;¼One quarter
&frac12;½One half
&frac34;¾Three quarters
&iquest;¿Upside-down ?
&times;×Times sign: narrow x without serifs
&divide;÷Division sign: a colon : with a dash through it
&ETH;ÐOld English voiced "Th", "D" with dash through upright
&eth;ðOld Englished voiced "th": bendy "d" with dash through tail
&THORN;ÞOld English unvoiced "Th": "P" but loop has slipped down
&thorn;þOld English unvoiced "th": smaller version of the above
&AElig;Æ"A" and "E" in a ligature, as in ENCYCLOPAEDIA
&aelig;æ"a" and "e" in a ligature, as in "encyclopaedia"
&OElig;Œ"O" and "E" in a ligature, as in MANOEUVRE
&oelig;œ"o" and "e" in a ligature, as in "manoeuvre"
&Aring;Å"A" with a little circle above: Angstrom sign
&Oslash;Ø"O" with diagonal line through: Empty set sign
&Ccedil;Ç"C" with cedilla (sickle shape) underneath
&ccedil;ç"c" with cedilla (sickle shape) underneath
&szlig;ßGerman "sz" ligature, like a lower case Greek Beta
&Ntilde;ÑN with wiggle on top
&ntilde;ñn with wiggle on top

20.5.14

IBM ODM Decision Center Üzerinden Çalışır Yeni WSDL Versiyonu Üretmek

IBM ODM üzerinde çalışan kurallar için yeni versiyon üretme işlemi genelde geliştiriciler tarafından yapılmaktadır. Geliştiricilerin yükünü azaltmak amacıyla bu işlemin iş birimi tarafından yapılmasını sağlamak amacıyla çok fazla kod kısmına girmeden ilgili işlemlere göz atalım;
  1. Varsayılan senaryoda işbirimi ilgili kurallar üzerinde decision center üzerinde değişikliği yapar.
  2. Admin rolüne sahip bir kullanıcıyla teamserver a girilir.
  3. Deploy yapılması istenen proje seçilerek Explorer tabı yardımıyla proje klasör yapısı gözlenir.
  4. Klasör pencerelerini bakıldığında proje kapsamında Resources klasörünün de bulunması gerekmektedir. Eğer ilgili klasör yoksa Create Smart Folder denilerek Resources adında bir klasör oluşturulur.
  5. Eğer res kısmına ve deployment manager kısmına düzgün bir deployment işlemi yapıldıysa Resources altında deployment.xml dosyası oluşacaktır eğer yoksa Resources klasörü altına META-INF, onun altına da deployment.xml dosyası oluşturularak içerisine aşağıdakine benzer bir config yapısı girilmelidir.(Config Yapısı)
  6. Deployment dosyası da projeye dahil edildikten sonra, şimdi deploy işlemini gerçekleştirme kısmına geçebiliriz.Configure tabına tıklanarak Manage RuleApps linkine tıklanır. Deploy edilmesi istenen projeye ait yeni bir ruleApp oluşturulur.
  7. Manager Servers kısmından deploy edilecek server kontrol edilir. Serverın ayarlarında eğer localhost adresi bulunuyorsa ilgili adres ip adresiyle değiştirilir.
  8. Admin rolündeki kişinin yapacağı işlem burada sona ermektedir. Bundan sonraki işlemler deploy yetkisine sahip kullanıcı tarafından yapılmalıdır.
  9. Deployment rolüne sahip kullanıcı teamserver üzerinden ilgili projeye giriş yapar.
  10. Project kısmına tıklayarak Deploy RuleApps linkine tıklar.
  11. Admin rolüne sahip kullanıcının yaratmış olduğu ruleApp ekrana gelir. İlgili RuleApp ı seçerek yukardaki menüden Deploy seçeneğine tıklanır.
  12. Dilenirse Baseline oluşturularak devam edilir.
  13. Deploy on a Rule Execution Server seçeneği seçilir.
  14. Next diyerek versiyon bilgisi seçilir.
  15. Deploy edilecek server bilgisi de seçilerek yeni versiyona çıkılmış olur.
Not: Web servisi çağrımı sırasında eğer XOM sınıflarını bulamadığına dair hatalarla karşılaşılırsa RES console yardımıyla ilgili proje seçilip, managed URIs kısmından ilişkili XOM sınıfı bağlanmış mı kontrol edilmelidir.
Her ne kadar deployment sürecinin kontrolü yazılımcılara yıkılsa da bu süreci ilgili maddeler eşliğinde değiştirebilmekteyiz.

Config Yapısı
<?xml version="1.0" encoding="UTF-8"?><project-deployment
xmlns="http://www.ibm.com/rules/ruleproject/deployment"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<config serverURL="<hostname>:++HBRSSPORT++/res">
<xom>
<uri value="resuri://my-xom.zip/1.0"/>
<uri value="resuri://my-xom-xmarshaller.jar/1.0"/>
</xom>
</config>
</project-deployment>

5.5.14

WebSphere Üzerinde Kurulan Serverların Port Numaralarını Bulma

IBM ODM ve Websphere yapısının kurulumu sırasında bizlere ilgili sunuculara erişim için çeşitli port numaraları verilmektedir. Bu port numaralarını not almak her ne kadar faydalı olsa da çoğu kişi tarafından atlanılan adım olarak nitelendirilebilir. Atlanılan port numaraları çalışmalar ilerledikçe kullanıcılara zorluk çıkarmaktadır; kaybedilen port numaralarını bulmak için şöyle bir yol izlenmelidir:
Websphere içerisine kurulan her bir server bir profile içerisine kaydedilir. Profiller içerisinde ise bu serverlarla ilgili genel ve ayrıntılı bilgiler bulunur. Aranan port bilgileri de buradadır. Unuttuğumuz herhangi bir serverın portunu öğrenmek istiyorsanız, IBM ile ilgili kurulumları yaptığınız dizine gidiniz. Sonrasında WAS dizini altında bulunan serverlardan öğrenmek istediğimiz örneğin AppServer için C:\IBM\ODM851\WAS\AppServer\profiles\ODMSample8510\logs dizinine geliyoruz. Log dizini altında profiller ile ilgili bilgiler AboutThisProfile.txt dosyası içerisinde bulunmaktadır.
Bu dosyayı içerisinde ilgili port numaralar bulunmaktadır.

WebSphere Unutulan Şifre Sonrası Güvenliği İptal Etme

Websphere üzerinde unutulan admin şifresini nasıl nerden bulacağımızı anlatmıştım. Ola ki şifreyi unuttum, ilgili yerlerden de bir sonuç çıkaramadım; o zaman farklı bir yöntem deneyerek websphere'in bizden şifre istemesinin önüne geçebiliyoruz.
  1. Öncelikle gene security.xml dosyamızı buluyoruz.
  2. Herhangi bir sorunla karşılaşmamak için dosyanın bir yedeğini alıyoruz.
  3. Sonrasında security.xml dosyası içerisinde enabled="true" kısmını buluyoruz.
  4. Bu kısmı enabled="false" a çevirerek dosyamızı kaydediyoruz.
  5. Websphere i bundan sonra tekrardan kapayıp açmamız gerekmekte fakat elimizde bildiğimiz bir şifre olmadığından kapatma sırasında istenen şifre giremeyeceğiz. Dolayısıyla çalışan işlemlerden java ve javaw uzantılı tüm işlemleri öldürüyoruz.
  6. Tekrardan websphere serverını başlatıyoruz. Bundan sonra bizden herhangi bir şifre istemeyecek istedğimiz kullanıcı adı ile console kısmını açabiliriz. Sonrasında tekrardan şifreli güvenliği aktif etmek istiyorsak ise Websphere'e girdikten sonra Security/GlobalSecurity/Enable Administrative Security kısmını aktif ediyoruz.

WebSphere'de Unutulan Admin Şifresi Bulma

Websphere ile uğraşanların sonrasında admin şifrelerini ve kullanıcı adlarını unuttukları çok olmuştur. Websphere üzerinde unutulan admin kullanıcı adı ve şifresini bulmak için aşağıdaki adımları izliyoruz;
  1. IBM dizini altında kurmuş olduğunuz cell dizini bulunmaktadır. Örneğin; C:\IBM\ODM851\WAS\AppServer\profiles\ODMSample8510\config\cells\SamplesCell
  2. Bu dizin içerisinde security.xml dosyası bulunmaktadır. Bu dosya websphere ile ilgili güvenlik ayarlarının tutulduğu dosyadır. Bu dosya yardımıyla websphere üzerindeki güvenlik kriterlerini değiştirebilir, unuttuğunuz şifreleri geri getirebilirsiniz.
  3. authDataEntries taglari içerisinde aradığınız kullanıcı adı ve şifre kısımları bulunmaktadır. Bu kısım yardımıyla eğer unuttuğunuz kullanıcı adı ise userID tagi içerisinde unuttuğunuz adı görebilirsiniz.
  4. Unuttuğunuz şey şifre ise ilgili kullanıcı adı yanında encode edilmiş şifre bulunmaktadır. İlgili şifreyi kopyalarak aşağıdaki linke giderek unuttuğumuz şifreyi bulabiliriz.
  5. http://www.sysman.nl/wasdecoder/ linkini kullanarak dosya içerisinde bulmuş olduğumuz password kısmını buraya yapıştırıyoruz.
Unutulan şifre bu işlem sonrasında görülecektir.

28.2.14

2014 Yılında Öğrenilmesi Fayda Sağlayacak Programlama Dilleri


 
 
Araştırma bu arada jobstractor.com üzerinde yayınlanan iş ilanları baz alınarak oluşturulmuş. Araştırmaya göre benim gözüme çarpan noktalardan bazıları şöyle;
- ASP.Net 4.5 ile birlikte iyice oturmaya başlayan MVC yapısı' nın yanında PHP nin aranan bir dil olması beni açıkçası şaşırttı.
- Java ve Javascript piyasayı gene süpürmeye devam ediyor. Javascript bilsem de aldığım derslerden dolayı soğuduğum Java'ya acilen alışmam gerektiğini düşünüyorum.
- C programlama dili ASP.NET önüne geçerek gerçekten değişik bir dağılım göstermiş, bu anketin Türkiye de gibi işverenlerin ilk olarak C programlama diline hakim olarak düşündüğünden mi kaynaklanıyor bilemedim.
Şu anki durum ise Lynda.com gibi dil öğretim siteleri göz önünde bulundurularak artış gösteren ilgi alanları şu şekilde analiz edilmiş;
  1. Java
  2. C
  3. C++
  4. C#
  5. Objective-C
  6. PHP
  7. Python
  8. Ruby
  9. JavaScript
  10. SQL
Hepimizin kullandığı Stackoverflow üzerinde sorulan sorulara bakarak ise giderek popülaritesi artan diller şöyle sıralanmış;
  1. JavaScript
  2. Java
  3. PHP
  4. C#
  5. Python
  6. C++
  7. Ruby
  8. C
  9. Objective-C
  10. CSS
2014 yılında öyle gözüküyor ki gene Java popüleritesini koruyacak, onu takip eden dil gene PHP olacak gibi.
 
Bu yıl umarım bunlardan bazılarını öğrenip kendimizi geliştirecek yeni değerler katabiliriz.

16.2.14

Boost kütüphanesi derleme sorunu : LNK1104: cannot open file 'libboost_date_time-vc100-mt-gd-1_47.lib' benzeri hatanın çözümü

C++ üzerinde matematiksel işlemler yapanlar bilirler, opensource kaynak olarak boost bu tür işlemler üzerinde etkili bir kütüphanedir. C++ programlama dilinin izin vermediği bir çok işlemi boost sayesinde yapabilmekteyiz. Sunduğu değişik veri yapılarıyla da işimizi kolaylaştırabilmekte, örneğin matrix kütüphanesi her türlü lineer cebir işlemlerini kolayca yapmanızı sağlıyor.

C++ a bir süredir ara verdiğimden dolayı bu kütüphaneyi tekrar kullanma şansı bulamamıştım. Bugünlerde uğraştığım bir proje üzerinde çalışırken tekrardan boost kütüphanesini indirme şansım oldu. Visual studio 2013 ortamında derlemeye çalıştığım kütüphane ne yazık ki beni hayal kırıklığına uğrattı.

Her derlememde gelen  LNK1104: cannot open file 'libboost_date_time-vc100-mt-gd-1_47.lib' hatalarını çözmek için bir çok yol arasam da hiç biri fayda etmedi. Neyse ki sonrasında kütüphanelerin internetteki kaynaklarına ulaşarak sorunumu çözdüm. İşe yarayacağını düşündüğüm bazı yolları paylaşmak istedim.

1 - Derlenmeyen kütüphaneyi zip halinde indirdikten sonra kendi pc nizde lib dosyalarını oluşturmak;

  • Ilk olarak Start/Run penceresinden cmd ekranı açılır.
  • cmd ekranı üzerinden boost kütüphanesinin bulunduğu dizine girilir, örneğin C:\ üzerindeyken cd boost sizii C:\boost\ dizinine götürür.
  • Dizin içerisindeyken boostrap komutu çalıştırılır. Bu komut sayesinde bilgisayarınızda derleme işlemi başlayacaktır.
  • Sonrasında b2 komutuyla beraber lib dosyaları açılmaya başlanır. Bu işlem sonrasında boost dizini altında yeni bir klasör oluştuğunu göreceksiniz. 
2 - Derlenen lib dosyasını visual studio da tanıtmak;

  • Oluşturulan boost dizinini visual studio ortamında projeniz üzerindeyken sağ tıklayıp  ilk olarak properties diyerek C++/General kısmının Additional Include Directories bölümüne C:\boost_1_47_0; dizinini eklemeniz gerekmektedir.
  • Sonra Linker/Additional Library Directories kısmına da C:\Programs\boost_1_47_0\bin.v2\libs; ibaresini eklemeniz gerekmektedir.
Bu işlemler sonucunda projeniz derlenebilir konuma gelecektir. Eğer bu çözüm işinizi görmediyse diğer çözüme geçelim;

Visual studio'nun derleme sonucunda size verdiği hatayı, istediği kütüphaneyi, ilgili linkten bularak indirmeniz gerekmektedir.

İndirdikten sonra zip içinden ilgili lib i alarak boost içerisinde visual studio ya tanıttığınız yola bu dosyayı yapıştırırsanız sorununuz çözülmüş olacaktır.

Bu çözüm bende işe yaradı, baş ağrılarımı giderdi :) Umarım benim gibi aynı hatayı almış kişilere yardımım dokunabilir.