2013-01-15 11 views
8

Yapım kullanımı 11.04 buntu'da çalışmak için şimdi 12.04'te değil.Hedef yapmak için bir kural yok /usr/lib/someLib.so

someLib.so konumuyla bir çakışma var. Yani yanlış yere bakıyor. /usr/lib/here/someLib.so doğru konumdur.

ccmake 'c' yapılandırmasını cmd çalıştırdığımda, çakışma farkedildi, .. bir kez. Artık ccmake artık şikayet etmiyor, ama err hala orada. runtime library [someLib.so] in /usr/lib may be hidden by files in: /usr/lib/here

inşa err neden CMakeLists.txt çizgiler şunlardır:

ADD_EXECUTABLE(test main.cpp) 
TARGET_LINK_LIBRARIES(test moreStuff evenMoreStuff) 

ben build.make dosyada sorun bakın. Hangi ccmake tarafından oluşturulur. Ccmake'nin someLib.so'un /usr/lib/here/ yerine /usr/lib/ olduğu fikrini nereden aldığını anlayamıyorum. Bir yerlerde bir SET() bildirimi olacağını düşünüyorum. Onu bulamıyorum.

1) Yapılandırma dosyası (ccmake 'c' cmd) nedir? Nerede olurdu (aynı dir?)? Delirirsem, err'i tekrar görebilirim. (Değişen CMakeFile.txt bunu yapmıyor gibi görünmektedir.)
2) someLib.so konumunun nerede ayarlandığını nasıl öğrenebilirim? (Ne arıyorum?)

CCMAKE'den nefret ediyorum. Teşekkürler

cevap

1

Bunun bir find_library çağrısı ile ilgili bir sorun olduğunu söyleyebilirim. Doğru hatırlıyorsam, ortamınız, her ikisi de aynı ada sahip bir kitaplık dosyası içeren iki farklı konuma işaret ettiğinde gerçekleşiyordu.

Her iki konuma işaret etmemesi için ortamınızı değiştirerek veya cmake'nin her iki konumu bulmasını önlemek için find_library çağrısı olan NO _ * _ PATH öğelerinden birini kullanarak bunu önleyebilirsiniz (örneğin kendi yolunuzu tanımlayabilirsiniz) Bu find_library ve kullanım NO_DEFAULT_PATH çevre yolları kullanmasını cmake önlemek için - belgelere bakın: http://www.cmake.org/cmake/help/v2.8.10/cmake.html#command:find_library)

find_library (someLib_location İSİMLERİ someLib yOLLAR/usr/lib/burada/NO_DEFAULT_PATH) 1 ilişkin

) onların denir düşünüyorum CMakeCache dosyaları ama gitmek için en güvenli yol, tüm yapı yapısını silmektir (bir kaynak) 2 İlişkin

) Ben sadece birinde var

+1

someLib.so probbably CMAKE_FIND_LIBRARY_PREFIXES ve CMAKE_FIND_LIBRARY_SUFFIXES değişkenler tarafından ilave edilen) olarak .bu soneki ve lib öneki olmayan (kütüphane adıyla CMakeList.txt dosyaları Throug arayacakları yer. CMAKE'ye/usr/lib'de yanlış bir şekilde var olduğunu belirten bir şey var. CMAKE çevre verilerini nereden alır? Bunu yapan bazı CMAKE komutu var mı? Env'de ayarlayan hiçbir şey yok. Kontrol etmem gereken başka sistem ortamı dosyaları/ayarları var mı? Teşekkürler – Doug

+1

Hm Hiç bu tür bir sorun yaşamadım ... Bu soruyu CMake posta listesine sormayı denemelisiniz http://www.cmake.org/cmake/help/mailing.html –

+1

Sorun bir projenin 'CMAKE'tı başka bir projeye referans veren dosyalar 'CMAKE dosyaları. Yani bir proje başka bir projenin ayarlarını devraldı. Bu şekilde, hele hele bir şekilde, bu proje ayarları diğerine, ya da diğerine, ya da başka bir şeye bağlıdır ... – Doug

İlgili konular