Cho đến nay tôi đã viết tất cả mã của mình trong studio trực quan và giờ tôi cần thêm một số giao diện người dùng vào nó để tôi sẽ sử dụng Qt . Vì vậy, tôi đã thêm tất cả các tập tin Trong dự án của tôi (ngoại trừ lớp chính) và sau đó cố gắng biên dịch nó bằng cách sử dụng Qt. vì tôi đã sử dụng một số tính năng C++ 0x, tôi phải thêm dòng này vào tệp dự án:Lỗi biên dịch của người tạo Qt ":: swprintf và :: vswprintf chưa được khai báo"
QMAKE_CXXFLAGS += -std=c++0x
thì tôi đã thử biên dịch nó. chỉ có hai lỗi (có thể có nhiều hơn nhưng trình biên dịch dừng lại ở hai trường hợp này)
In file included from d:\qt\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c++/bits/postypes.h:42,
from d:\qt\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c++/iosfwd:42,
from d:\qt\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c++/ios:39,
from d:\qt\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c++/ostream:40,
from ../TranslatorBase/ttObject.h:5,
from ../TranslatorBase/ttArray.h:5,
from ../TranslatorBase/ttArray.cpp:1:
d:\qt\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c++/cwchar:159: error: '::swprintf' has not been declared
d:\qt\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c++/cwchar:166: error: '::vswprintf' has not been declared
Tôi không biết tại sao có lỗi như vậy. và để đảm bảo lần đầu tiên tôi đã cố gắng để biên dịch cùng một dự án sử dụng Cygwin/gcc sử dụng lệnh này:
gcc -std=c++0x TranslatorBase/ttArray.cpp -c -o ttArray.o
không có lỗi đó nó biên dịch thậm chí không có bất kỳ cảnh báo. Trong thực tế, tất cả các tập tin trong dự án của tôi biên dịch mà không có bất kỳ cảnh báo ở đó.
bây giờ tôi đang sử dụng Qt Creator v2.0.1 dựa trên Qt v4.7.0 và nó sử dụng mingw/gcc v4.4.0
--edit--
chỉ là một điều mới mà tôi đã tìm thấy , ngay cả khi không có tệp nguồn của tôi (chỉ với các tệp được tạo bởi Qt) vẫn còn lỗi biên dịch. có vẻ như có vấn đề với gcc mà tôi có.
@Troubadour Qt tạo lệnh này:
g++ -c -std=c++0x -g -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I'd:/Qt/qt/include/QtCore' -I'd:/Qt/qt/include/QtGui' -I'd:/Qt/qt/include' -I'd:/Qt/qt/include/ActiveQt' -I'debug' -I'.' -I'../TranslatorUI' -I'.' -I'd:/Qt/qt/mkspecs/win32-g++' -o debug/ttArray.o ../TranslatorBase/ttArray.cpp
Lệnh 'gcc' build' tạo' qmake' là gì? – Troubadour
Lưu ý rằng [câu hỏi này] (http://stackoverflow.com/questions/3445312/swprintf-and-vswprintf-not-declared) thảo luận về cùng một vấn đề để nó có thể được sử dụng một số. Nó có thể là bạn đang nhìn thấy chính xác điều tương tự mặc dù bạn không rõ ràng có tùy chọn '-ansi' vì vậy có lẽ không. – Troubadour
Nếu bạn sử dụng 'g ++' tại dòng lệnh thay vì' gcc' thì nó vẫn hoạt động? – Troubadour