Visual Studio'da bir C ++ projesi derlediğimde neden “LNK1104: 'C: \ Program.obj' dosyası açılamıyor” hatası oluşuyor?


117

Visual Studio 2008'de yeni bir C ++ projesi oluşturdum. Henüz kod yazılmadı; Yalnızca proje ayarları değiştirildi.

Projeyi derlediğimde aşağıdaki önemli hatayı alıyorum:

ölümcül hata LNK1104: 'C: \ Program.obj' dosyası açılamıyor

Yanıtlar:


153

Bu özel soruna, yolunda boşluklar olan bir kitaplık dosyasına bir bağımlılık belirtilmesi neden olur. Projenin doğru bir şekilde derlenmesi için yolun tırnak işaretleri içine alınması gerekir.

On Yapılandırma özellikleri -> Bağlayıcı -> Girdi projenin özelliklerinin sekmesi, bir orada Ek bağımlılıklar özelliği. Bu sorun, bu özelliğin değiştirilmesiyle düzeltildi:

C: \ Program Dosyaları \ sofware sdk \ lib \ library.lib

Kime:

"C: \ Program Dosyaları \ sofware sdk \ lib \ library.lib"

Alıntıları eklediğim yer.


17
Tanrım az önce iki günlük böcek kovalamacasını 30 saniyeye
astınız

10
Ben de aynı sorunu yaşadım. Bağlayıcınız doğruysa ancak kitaplık dizininiz yanlış ayarlanmışsa, aynı hata ortaya çıkabilir. Kitaplığı doğru ayarlayıp ayarlamadığınızı görmek için Yapılandırma Özellikleri -> VC ++ dizinleri -> Kitaplık Dizinleri'ne bakmayı deneyin . Bazen lib klasörü bir x86 ve bir x64 klasöründen oluşur. Her ikisini de içeren klasör yerine bunlardan birine (derleyicinize bağlı olarak) ayarlamanız gerekir.
M4st3rM1nd

1
Sonrasına noktalı virgül koymayı unutmayın "C:\Program Files\sofware sdk\lib\library.lib". A'nın olmaması ;da projenin yanlış derlenmesine neden olacaktır.
roscioli

1
Visual Studio 2005 (Windows 8.1'de) kullanarak OpenCV oluşturmaya çalışırken bu problemi yaşadım ... ve çözdü. Harika!
AlainD

1
Bunu denedim ve bende işe yaramadı. "Qt5Xmld.lib"; "Qt5XmlPatternsd.lib"; "Qt5Cored.lib";% (EkBağımlılıklar) -Neyi kontrol etmeliyim?
STF

65

Bu, dosya hala çalışıyorsa olabilir.

: -1: hata: LNK1104: 'debug \ ****. Exe' dosyası açılamıyor


4
bu da benim sorunumdu!
Kamran Bigdely

1
Bunu MS Security Essentials'ın dosyayı kilitli tutmasından kaynaklanıyorum.
Synetech

evet, önceki konsol penceresini kapattı ve birdenbire kitaplık okunabilirdi.
Kari

15

Visual Studio'yu kapatıp yeniden açtıktan sonra sorun benim için ortadan kalktı. Sorunun neden meydana geldiğinden emin değilim, ama bu denemeye değer olabilir.

Bu, VS 2013 Ultimate, Windows 8.1 üzerindeydi.


4
ah, Microsoft ... İlk denememiz her zaman yakın olmalı ve yeniden açılmalı (veya gücü kapatıp açmalı) - bunu yaptığımızda birkaç gizemli hata ortadan
Leonardo Alves Machado

1
O kadar utanç verici hissediyorum ki bu çözüm sorunumu çözebilir. Artık arkadaşlarımla ve ailemle tanışmak için dışarı çıkamam.
javaLover

2
Carol ile aynı sorunu yaşadın.
amod

10

Bunun açık olup olmadığını da kontrol edin: Yapılandırma Özellikleri -> C / C ++ -> Ön İşlemci -> Dosyaya Ön İşlem .


Benim durumumda da sorun buydu, ancak bu bayrağı açmak istersem ne yapmalıyım (Prepossessed dosyasını görüntülemek için)?
Guy Avraham

2
Burada bazı geçici çözümlere sahipsiniz: Önceden işlenmiş kod nasıl çıkarılır VE derlenir (Visual Studio) ve burada: / p argümanıyla (bir dosyaya ön işlem) bir proje (VS 2008) derlemek derlenmez . Ama esasen bu bir derleyici seçeneğidir, bu yüzden ikisini de yapmaz, ikisini birden yapmaz.
Assaf Levy

4

Ben de aynı problemi yaşadım. Ek kütüphane yolu klasörünün adındaki "," neden oldu.Ek kütüphane yolunu değiştirerek çözüldü.


4

Benim sorunum eksik bir .libuzantıydı, sadece bağlantı kuruyordum mylibve VS aramaya karar verdi mylib.obj.


3

Benim durumumda, yanlış yönlendirilmiş bir referans meselesiydi. Proje, başka bir projenin çıktısına referans verdi, ancak ikincisi, öncekinin aradığı dosyayı çıktı vermedi.


3

Çözüm 1 (benim durumum için): Windows Gezgini işlemini yeniden başlatın (evet, Windows dosya yöneticisi).

2.Çözüm:

  1. Visual Studio'yu kapatın. Windows Oturumu Kapat
  2. Oturum açın, Visual Studio'yu yeniden açın
  3. Her zamanki gibi inşa edin. Artık sorunlu dosyayı oluşturur ve erişebilir.

Bazen dosya sisteminin veya onu kontrol eden kişinin izinleriyle kaybolduğunu varsayıyorum. Windows oturumunu yeniden başlatmadan önce, zombi msbuild32.exesüreçlerini öldürmeye çalışın , görsel stüdyoyu yeniden başlatın, sorunlu dosyayı göstermese bile hiçbirini kontrol edin. Yapılandırma sorunu yok. Arada sırada olur. Windows'taki bazı dahili şeyler düzeltilmez, yeniden başlatılması gerekir.


VS2019 ile bu sorunu yaşadım ... bu sorunu çözdü ... hataların devam etmesi şaşırtıcı. thx
JHBonarius

2

Aynı hatayı aldım, sadece yüklediğim bir Nuget paketiyle (yalnızca başlık değil) ve sonra kaldırmaya çalıştım.
Benim için yanlış olan şey, .cpp dosyalarımdan birine yeni kaldırdığım paket için bir başlık eklememdi (oldukça aptalca, evet).
Hatta ek kitaplık dizinleri bağlantısını da kaldırdım Project -> Properties -> Linker -> General, ancak hala var olmayan başlığa başvurmaya çalıştığım için elbette boşuna.

Bu durumda kesinlikle kafa karıştırıcı bir hata mesajı, çünkü başlık adı <boost/filesystem.hpp>ancak hata bana verdi "cannot open file 'llibboost_filesystem-vc140-mt-gd-1_59.lib'"ve satır numarası veya herhangi bir şey yoktu.


2

Aynı sorunu yaşadım, ancak benim durumum için çözüm cevaplarda listelenmiyor. Virüsten koruma programım (AVG) dosyayı MyProg.exebir virüs olarak belirledi ve 'virüs deposuna' koydu. Bu depoyu kontrol etmeniz ve dosya varsa - o zaman geri yüklemeniz gerekir. Bana yardım etti.


1

Bir montaj proje için (-> Yapı bağımlılıklar - -> Yapı Özelleştirmeleri projectname> masm (seçilen)), ayar ön işlenen Kaynak Listesini oluşturmak için Doğru ayarı düzelttim temizleyerek, benim için de sorun neden oldu. VS2013 burada.


1

Eksik ana yürütülebilir dosya hakkında şikayet eden linker ile aynı problemle karşılaşıyorum. Bu, yeni Visual Studio 2013'e yönelik çözüm bağlantı noktamız sırasında oldu . Çözüm, yönetilen ve yönetilmeyen projelerin / kodların çeşitli bir karışımıdır. Sorun (ve düzeltme) , çözüm klasöründe eksik bir app.config dosyası olarak sonuçlandı . Bunu anlamak bir gün sürdü :(, çünkü çıktı günlüğü pek yardımcı olmadı.



0

Cevap veriyorum çünkü bu özel çözümü başkaları tarafından listelendiğini görmüyorum.

Görünüşe göre antivirüsüm (Ad-Aware), projelerimden birinin bağlı olduğu bir DLL'yi işaretliyor ve onu siliyordu. DLL'nin bulunduğu dizini dışarıda bıraktıktan sonra bile, bilgisayarımı yeniden başlatana kadar aynı davranış devam etti.


0

Benim durumumda, önceki bir Game Engine Graphics kursundaki matematik kütüphane dosyalarını GLM ile değiştirdim. Sorun, bunları Visual Studio'nun Çözüm Gezgini içindeki projeye eklemememdi (proje havuzunda olsalar bile).


0

Ben, LNK2038 hatası ile birlikte bu sorunu vardı bu izledi yazı RELEASE ve DEBUG dll ayırmak. Bu süreçte, bu bağımlılıkların bulunduğu tüm klasörü temizledim.

Neyse ki tüm bu dosyaların yedeğini aldım ve bu hatanın sorunu çözmek için DEBUG klasörüne geri attığı dosyayı aldım. Hata kodu bir şekilde yanıltıcıydı çünkü bu ipucuna bu gönderideki cevaplardan birinden tekrar gelmek için çok zaman harcamak zorunda kaldım.

Umarım bu cevap, ihtiyacı olan birine yardımcı olur.


0

Ben bunu çözmüş ekleyerek bir mevcut bir projeyi etmek benim solüsyon I eklemeyi unuttuğu ilk zamanlarında.


0

Ben de aynı hatayı aldım:

fatal error LNK1104: cannot open file 'GTest.lib;'

Bu, ;sonunda neden oldu . Birden fazla kitaplığınız varsa, bunlar boşlukla (boşluk çubuğu) ayrılmalı, virgül veya noktalı virgül kullanmamalıdır!

Bu yüzden ;kitaplıkları listelerken kullanmayın veya başka bir şey kullanmayın .Project properties >> Configuration Properties >> Linker >> Input


0

Yukarıdaki çözümü denedim ama benim için işe yaramadı. Bu yüzden exe'yi yeniden adlandırıyorum ve çözümü yeniden oluşturuyorum. Benim için çalışıyor.


0

Visual Studio 2019'da bir VC ++ DLL oluştururken şu hatayı yaşadım:

LNK1104: 'C: \ Program.obj' dosyası açılamıyor

Özellikler> Bağlayıcı> Girdi> Modül Tanım Dosyası projesi altında ortaya çıktı, dosya adının sonunda eşleşmemiş bir çift tırnak olan bir def dosyası belirtmiştim . Eşleşmeyen çift alıntıyı silmek sorunu çözdü.


0

Öldürüldü msbuild32.exeve yeniden inşa edildi. Benim için çalıştı.


-1

Ben de "Visual Studio 2013" ile aynı sorunu yaşıyorum.

LNK1104: cannot open file 'debug\****.exe

Visual stüdyosunu kapatıp yeniden başlattıktan sonra çözüldü.


-3

Aynı sorunu yaşıyordum, kodu yeni projeye kopyaladım ve inşa etmeye başladım. Başka bir hata gelmeye başladı. C4996 hatası: 'fopen': Bu işlev veya değişken güvenli olmayabilir. Bunun yerine fopen_s kullanmayı düşünün

Bu sorunu tekrar çözmek için proje projesine aşağıdaki gibi bir gayrimenkulümü ekledim. Proje -> Özellikler -> Konfigürasyon özelliği -> c / c ++. Bu kategoride Önişlemci Tanımları alan adı var Sorunu çözmek için _CRT_SECURE_NO_WARNINGS ekledim. Yardımcı olacağını umuyoruz ...

Teşekkür ederim


Bu cevabın orijinal gönderi ile hiçbir ilgisi yoktur.
zar

Güvenlik özelliklerini devre dışı bırakmak tam olarak iyi bir fikir değil
Matti Virkkunen
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.