2016-03-29 15 views
0

Ben bir ortak kütüphane ve Cygwin üzerinde bu lib kullanarak bir uygulama yapıyorum. GCC CMake ile bağlantı kurulurken kullanılacak bir .dll.a oluşturur. clang geçiş benClang Cygwin ile clang beklenen beklenen dll.a değil

[ 34%] Built target xxx_shared 
make[2]: *** No rule to make target 'src/libxxx.dll.a', needed by 'xxx.exe'. Stop. 

bu çınlama CKağıt uzantısı bir hata mı olsun? Ben cmake --version 3.3.2

cevap

0

kullanıyorum

Evet, CMake bir hata gibi görünüyor.

/usr/bin/c++.exe   -g -shared -Wl,--enable-auto-import -o XXX -Wl,-Bstatic -lm -Wl,-Bdynamic -lstdc++ -lcygwin -ladvapi32 -lshell32 -luser32 -lkernel32 

clang ise:

/usr/bin/clang++ -fPIC -g -shared       -o XXX -Wl,-Bstatic -lm -Wl,-Bdynamic -lstdc++ -lcygwin -ladvapi32 -lshell32 -luser32 -lkernel32 

Yani nasılsa çınlama ++ -Wl,--enable-auto-import bayrağı almaz görünüyor make VERBOSE=1 Running GCC ile ortaya koymaktadır. Düzeltilmiş clang ++ komutunu manuel olarak çalıştırdığınızda, yapının geri kalanı beklendiği gibi devam etmesini sağlayarak, beklenen .dll.a değerini oluşturur. Bununla birlikte, bunun neden böyle olduğu henüz anlaşılmamıştır. Bu noktada, CMCC platform uzantılarını çözemiyorum, ki bunu GCC için belirliyor.

Güncelleme: Bildiren here.