2011-06-25 18 views
1

私のOSはUbuntu-11.04 ユーザーマニュアルに従ってlangをlangでコンパイルしました。 はその後、私は私が変更されたファイルの$ LIBCXX_DIR/libに/ builditが後に貼り付けられ、次のlibC++をUbuntuでclang ++でコンパイルする

http://lists.cs.uiuc.edu/pipermail/cfe-dev/2011-February/013228.html

を読み取ることにより、$ LIBCXX_DIR/libに/ buildit.shに変更を加え 、++打ち鳴らすとlibcxxをコンパイルしようとしましたエラーメッセージ。

変更されたbuildit.shで以下のエラーが表示されます。 clang ++は がヘッダーファイル 'string'を正常にコンパイルできないようです。 はここで完全なコンパイル・レポートです:

[email protected]:~/usr/libcxx/lib$ ./buildit 
clang++ -c -g -Os -fPIC -std=c++0x -nostdinc++ -I../include 
../src/algorithm.cpp 
clang++ -c -g -Os -fPIC -std=c++0x -nostdinc++ -I../include ../src/bind.cpp 
clang++ -c -g -Os -fPIC -std=c++0x -nostdinc++ -I../include ../src/chrono.cpp 
clang++ -c -g -Os -fPIC -std=c++0x -nostdinc++ -I../include 
../src/condition_variable.cpp 
clang++ -c -g -Os -fPIC -std=c++0x -nostdinc++ -I../include 
../src/exception.cpp 
../src/exception.cpp:85:6: warning: #warning uncaught_exception not yet 
implemented [-W#warnings] 
    #warning uncaught_exception not yet implemented 
    ^
../src/exception.cpp:119:6: warning: #warning exception_ptr not yet implemented 
[-W#warnings]                 
    #warning exception_ptr not yet implemented 
    ^
../src/exception.cpp:130:6: warning: #warning exception_ptr not yet implemented 
[-W#warnings]                 
    #warning exception_ptr not yet implemented 
    ^
../src/exception.cpp:146:6: warning: #warning exception_ptr not yet implemented 
[-W#warnings]                 
    #warning exception_ptr not yet implemented 
    ^
../src/exception.cpp:181:6: warning: #warning exception_ptr not yet implemented 
[-W#warnings]                 
    #warning exception_ptr not yet implemented 
    ^
../src/exception.cpp:193:6: warning: #warning exception_ptr not yet implemented 
[-W#warnings]                 
    #warning exception_ptr not yet implemented 
    ^
6 warnings generated.               
clang++ -c -g -Os -fPIC -std=c++0x -nostdinc++ -I../include ../src/future.cpp 
clang++ -c -g -Os -fPIC -std=c++0x -nostdinc++ -I../include ../src/hash.cpp 
clang++ -c -g -Os -fPIC -std=c++0x -nostdinc++ -I../include ../src/ios.cpp 
clang++ -c -g -Os -fPIC -std=c++0x -nostdinc++ -I../include ../src/iostream.cpp 
clang++ -c -g -Os -fPIC -std=c++0x -nostdinc++ -I../include ../src/locale.cpp 
In file included from ../src/locale.cpp:10: 
../include/string:2122:10: error: overload resolution selected deleted operator 
'=' 
    __r_ = _STD::move(__str.__r_); 
    ~~~~^~~~~~~~~~~~~~~~~~~~~~~ 
../include/string:2133:5: note: in instantiation of member function 
'std::__1::basic_string<char, std::__1::char_traits<char>, 
std::__1::allocator<char> >::__move_assign'  
     requested here 
    __move_assign(__str, integral_constant<bool, 
    ^
../src/locale.cpp:4772:10: note: in instantiation of member function 
'std::__1::basic_string<char, std::__1::char_traits<char>, 
std::__1::allocator<char> >::operator='   
     requested here 
    __c_ = __analyze('c', ct); 
     ^
../include/memory:2050:7: note: candidate function (the implicit copy 
assignment operator) has been explicitly deleted         
class __compressed_pair 
    ^
In file included from ../src/locale.cpp:10:          
../include/string:2122:10: error: overload resolution selected deleted operator 
'=' 
    __r_ = _STD::move(__str.__r_); 
    ~~~~^~~~~~~~~~~~~~~~~~~~~~~ 
../include/string:2133:5: note: in instantiation of member function 
'std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, 
std::__1::allocator<wchar_t>    
     >::__move_assign' requested here 
    __move_assign(__str, integral_constant<bool, 
    ^
../include/locale:2796:15: note: in instantiation of member function 
'std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, 
std::__1::allocator<wchar_t> >::operator=' 
     requested here 
     __nsn = __mp.negative_sign(); 
      ^
../include/memory:2050:7: note: candidate function (the implicit copy 
assignment operator) has been explicitly deleted         
class __compressed_pair 
    ^
2 errors generated. 

//buildit.sh

#! /bin/sh 
# 
# Set the $TRIPLE environment variable to your system's triple before 
# running this script. If you set $CXX, that will be used to compile 
# the library. Otherwise we'll use clang++. 

set -e 

if [ `basename $(pwd)` != "lib" ] 
then 
    echo "current directory must be lib" 
    exit 1 
fi 

CXX=clang++ 
CC=clang 

if [ -z $RC_ProjectSourceVersion ] 
then 
    RC_ProjectSourceVersion=1 
fi 

EXTRA_FLAGS="-std=c++0x " 
    EXTRA_FLAGS="-std=c++0x" 
    LDSHARED_FLAGS="-o libc++.so.1.0 \ 
     -shared -nodefaultlibs -Wl,-soname,libc++.so.1 \ 
     -lpthread -lrt -lc -lstdc++" 

    RC_CFLAGS="-fPIC" 
    SOEXT=so 

for FILE in ../src/*.cpp; do 
    echo $CXX -c -g -Os $RC_CFLAGS $EXTRA_FLAGS -nostdinc++ -I../include $FILE 
    $CXX -c -g -Os $RC_CFLAGS $EXTRA_FLAGS -nostdinc++ -I../include $FILE 
done 

$CC *.o $RC_CFLAGS $LDSHARED_FLAGS $EXTRA_FLAGS 

#libtool -static -o libc++.a *.o 

if [ -z $RC_XBS ] 
then 
    rm *.o 
fi 

答えて

-1

まあ、エラーメッセージは、私の質問にハワードヒナントの回答を参照してください自分自身を説明しますstd::async in clang 3.0 + libc++ doesn't work? 私はだと思います同じ場所。

関連する問題