2087
|
Qt / Установка, сборка, отладка, тестирование / 4.8.4 + msvc сборка и установка
|
: Февраль 11, 2013, 07:55
|
Привет всем! Совсем недавно, после долгих мучений, мне удалось собрать при помощи команды nmake статическую библиотеку Qt. Передо мной возникла проблема, что после сборки папка с исходниками раздулась до 30 Гб... Подозреваю, что там сейчас хранится много чего лишнего. Так вот, хотелось бы узнать, что нужно сделать, чтобы очистить всё лишнее или как правильно сделать nmake install и переместить всё нужное в отдельную папку?
|
|
|
2088
|
Qt / Вопросы новичков / Re: Наличие кириллицы в пути к проекту (Creator и MSVC2010)
|
: Декабрь 26, 2012, 11:43
|
Уход от проблемы не есть её решение!
Аллегорически это можно представить так: -Когда я связываю себе ноги шнурком, мне становится очень сложно передвигаться -Так не связывай их. -Уход от проблемы не есть её решение! Я где-то читал, что люди могут свободно ходить со связанными ногами, вот только там не написаны подробности. Зачем тебе использовать кириллицу? Тем более, под виндой, где постоянные проблемы с этим. Пантер, продолжая аллегорию, можно сесть в электро-кресло и свободно передвигаться со связанными ногами. Прихоть у меня такая. Просто не желаю, чтобы мои проекты зависели от кириллицы, ибо терпеть не могу бардак в документах. Тем более, где-то год назад у меня стояла на другом компе msvs2008 и Qt 4.7, 4.8, где не было подобной проблемы. Правда, в Qt Creator всё равно приходилось переносить проект в папку без кириллицы в пути. Cannot find file: C:\Users\Бабковы\Documents\Visual Studio 2010\Projects\test\test\test.pro. Там точно такой путь?
Да, точно, специально проверил коммандером. Студия создала папку для солюшена и папку для проекта.
|
|
|
2089
|
Qt / Вопросы новичков / Re: Наличие кириллицы в пути к проекту (Creator и MSVC2010)
|
: Декабрь 26, 2012, 10:27
|
- Тетя Ася, а почему когда мой муж делает так?...... (хрясь), у него рвется рубашка! - Значит не делайте ТАК!!!
Уход от проблемы не есть её решение! Ошибка в кодировке. Надо покопаться и все что можно перевести на UTF-8.
При создании просто проекта на C++ в этой же папке всё компилируется достаточно успешно. Я предоставил вывод ошибки при создании и компилировании проекта Qt 5. Если же я сохраню этот проект в папку "C:\temp\", то он у меня скомпилируется успешно. Всё дело в наличии в пути к проекту русских символов: 1> moc: C:\Users\???????\documents\visual studio 2010\Projects\test\test\test.h: No such file Где ? ? ? ? ? ? ? - папка пользователя, имя которой написано кириллицей. В гугле я находил посты, говорящие о том, что подобная проблема у людей решалась, только подробного описания решения этой проблемы я так и не обнаружил. В моём случае на этапе компиляции не справляется мета-объектный компилятор. Хочется его научить читать русские символы в пути к файлам проекта. При компиляции проекта в Qt Creator выдается такая ошибка: 11:20:30: Выполняются этапы для проекта test... 11:20:30: Запускается: «C:\Qt\Qt5.0.0\5.0.0\msvc2010\bin\qmake.exe» "C:\Users\Бабковы\Documents\Visual Studio 2010\Projects\test\test\test.pro" -r -spec win32-msvc2010 "CONFIG+=debug" "CONFIG+=declarative_debug" "CONFIG+=qml_debug" Cannot find file: C:\Users\Бабковы\Documents\Visual Studio 2010\Projects\test\test\test.pro. 11:20:30: Процесс «C:\Qt\Qt5.0.0\5.0.0\msvc2010\bin\qmake.exe» завершился с кодом 2. Ошибка при сборке/установке проекта test (инструментарий: Desktop Qt 5.0.0 MSVC2010 32bit (SDK)) Во время выполнения этапа «qmake» Я так понимаю, что если я смогу научить сам Qt Creator понимать кириллицу и пробелы в пути к файлу, то и сам moc подстроится. Ещё раз повторюсь, что находил посты людей, которые смогли решить данную проблему.
|
|
|
2090
|
Qt / Вопросы новичков / Наличие кириллицы в пути к проекту (Creator и MSVC2010)
|
: Декабрь 26, 2012, 09:09
|
Привет всем! Подскажите, пожалуйста, мне способ, который бы позволял мне использовать в пути к проекту кириллицу. В основном меня интересует как это реализовать для visual studio. Сейчас она выдаёт что-то подобное: 1>------ Build started: Project: test, Configuration: Debug Win32 ------ 1>Build started 26.12.2012 9:52:02. 1>InitializeBuildStatus: 1> Touching "Debug\test.unsuccessfulbuild". 1>CustomBuild: 1> Moc'ing test.h... 1> moc: C:\Users\???????\documents\visual studio 2010\Projects\test\test\test.h: No such file 1> Uic'ing test.ui... 1> Rcc'ing test.qrc... 1> File 'C:\Users\???????\documents\visual studio 2010\Projects\test\test\test.ui' is not valid 1> C:\Qt\Qt5.0.0\5.0.0\msvc2010\bin\rcc.exe: File does not exist 'C:\Users\???????\documents\visual studio 2010\Projects\test\test\test.qrc' 1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(151,5): error MSB6006: "cmd.exe" exited with code 1. 1> 1>Build FAILED. 1> 1>Time Elapsed 00:00:01.93 ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== Так же было бы интересно узнать метод решения этой проблемы относительно Qt Creator. Поиски в гугле пезультатов не дали
|
|
|
2091
|
Qt / Вопросы новичков / Re: Как поставить QWT или MathGl совместно с MSVS2008
|
: Январь 21, 2012, 12:11
|
Хотя нет. Вру. Покопавшись в свойствах проекта я перекопировал строчки из импортированного проекта в новосозданный:
Configuration Properties -> C/C++ General: Additional Include Directories Preprocessor: Preprocessor Difinitions -> Linker General: Additional Library Directories
Я добился, что файл примера у меня запустился во вновь созданном проекте.
|
|
|
2094
|
Qt / Вопросы новичков / Re: Как поставить QWT или MathGl совместно с MSVS2008
|
: Январь 20, 2012, 12:09
|
qmake -tp vc -r
В результате в корне <qwt_path> появится файл qwt.sln, его открываешь VS Express и компилируешь библиотеку. После компиляции у меня в поддиректории <qwt_path>\lib появились файлы qwt.dll, qwt.lib, qwtd.dll, qwtd.lib
popper, у меня давно появились эти файлы в результате команды nmake. VS Express я бы не хотел устанавливать, я в интернете натыкался на то, как адаптировать это под VC2008. Меня больше интересует, что и где надо прописать, чтобы библиотека работала в VC, так как примеры работают только в Qt Creator за счёт того, что там всё открывается через pro файл, где прописаны либы и инклуды да и ещё чего-то... В VC же не существует этих pro файлов, там как-то по другому прописывается всё это счастье. Вообще, у меня сейчас 2 папки с qwt, одна с исходниками, в которой я делал qmake qwt.pro (с разными параметрами) и nmake и другая, которая появилась за счёт nmake install, так же я правил qwtconfig.pri, точнее перекоментировал строчки, где можно изменить путь некоторых параметров с папки qwt на qt (чтоб там всякие плагины для дизайнера ставились напрямую и т.п.)
|
|
|
2095
|
Qt / Вопросы новичков / Re: Как поставить QWT или MathGl совместно с MSVS2008
|
: Январь 20, 2012, 02:00
|
1. Qt собрана msvc2008? 2. Qwt собрана? 3. Подготовлен тестовый пример, в котором прописаны пути к заголовочным файлам и библиотеке Qwt? 1. Qt libraries 4.8.0 for Windows (VS 2008, 273 MB) 2. Нет, я так и не смог её толково собрать 3. Не совсем понимаю, что Вы имеете в виду. С исходниками идёт папочка examples, если Вы это имеете в виду.
|
|
|
2096
|
Qt / Вопросы новичков / Как поставить QWT или MathGl совместно с MSVS2008
|
: Январь 19, 2012, 18:28
|
Собственно, моя тема по графикам себя изжила, появилась новая проблема. У меня стоит windows 7, msvs2008, Qt lib, qt-msvs-add-in всё взаимодействует друг с другом. теперь пытаюсь прикрутить к этому всему библиотеку графиков. Поиски в интернете только ввели в заблуждение...
|
|
|
2097
|
Qt / Вопросы новичков / Re: Графики в приложении
|
: Январь 19, 2012, 11:22
|
Qwt6\Bin папки у меня вовсе нет ни в исходниках, ни в папке установленной сборки. QTDIR=C:\Qt\4.7.4 прописалось у меня автоматически при установке Qt. В студии в настройках VC++ directories прописаны строчки: Include files: C:\qwt-6\src C:\Qwt-6.0.1\include C:\Qt\4.7.4\include и остальные, стандартные Library files: C:\qwt-6\lib C:\Qt\4.7.4\lib C:\Qwt-6.0.1\lib и остальные, стандартные. Не понимаю, что же может быть не так... Вот ещё исходник самого примера, может он чем-то сможет помочь: #include <qapplication.h> #include <qlayout.h> #include <qwt_plot.h> #include <qwt_plot_marker.h> #include <qwt_plot_curve.h> #include <qwt_legend.h> #include <qwt_series_data.h> #include <qwt_plot_canvas.h> #include <qwt_plot_panner.h> #include <qwt_plot_magnifier.h> #include <qwt_text.h> #include <qwt_math.h> #include <math.h>
//----------------------------------------------------------------- // simple.cpp // // A simple example which shows how to use QwtPlot connected // to a data class without any storage, calculating each values // on the fly. //-----------------------------------------------------------------
class FunctionData: public QwtSyntheticPointData { public: FunctionData(double(*y)(double)): QwtSyntheticPointData(100), d_y(y) { }
virtual double y(double x) const { return d_y(x); }
private: double(*d_y)(double); };
class Plot : public QwtPlot { public: Plot( QWidget *parent = NULL);
protected: virtual void resizeEvent( QResizeEvent * );
private: void populate(); void updateGradient(); };
Plot::Plot(QWidget *parent): QwtPlot( parent ) { // panning with the left mouse button (void) new QwtPlotPanner( canvas() );
// zoom in/out with the wheel (void) new QwtPlotMagnifier( canvas() );
setAutoFillBackground( true ); setPalette( QPalette( QColor( 165, 193, 228 ) ) ); updateGradient();
setTitle("A Simple QwtPlot Demonstration"); insertLegend(new QwtLegend(), QwtPlot::RightLegend);
// axes setAxisTitle(xBottom, "x -->" ); setAxisScale(xBottom, 0.0, 10.0);
setAxisTitle(yLeft, "y -->"); setAxisScale(yLeft, -1.0, 1.0);
// canvas canvas()->setLineWidth( 1 ); canvas()->setFrameStyle( QFrame::Box | QFrame::Plain ); canvas()->setBorderRadius( 15 );
QPalette canvasPalette( Qt::white ); canvasPalette.setColor( QPalette::Foreground, QColor( 133, 190, 232 ) ); canvas()->setPalette( canvasPalette );
populate(); }
void Plot::populate() { // Insert new curves QwtPlotCurve *cSin = new QwtPlotCurve("y = sin(x)"); cSin->setRenderHint(QwtPlotItem::RenderAntialiased); cSin->setLegendAttribute(QwtPlotCurve::LegendShowLine, true); cSin->setPen(QPen(Qt::red)); cSin->attach(this);
QwtPlotCurve *cCos = new QwtPlotCurve("y = cos(x)"); cCos->setRenderHint(QwtPlotItem::RenderAntialiased); cCos->setLegendAttribute(QwtPlotCurve::LegendShowLine, true); cCos->setPen(QPen(Qt::blue)); cCos->attach(this);
// Create sin and cos data cSin->setData(new FunctionData(::sin)); cCos->setData(new FunctionData(::cos));
// Insert markers // ...a horizontal line at y = 0... QwtPlotMarker *mY = new QwtPlotMarker(); mY->setLabel(QString::fromLatin1("y = 0")); mY->setLabelAlignment(Qt::AlignRight|Qt::AlignTop); mY->setLineStyle(QwtPlotMarker::HLine); mY->setYValue(0.0); mY->attach(this);
// ...a vertical line at x = 2 * pi QwtPlotMarker *mX = new QwtPlotMarker(); mX->setLabel(QString::fromLatin1("x = 2 pi")); mX->setLabelAlignment(Qt::AlignLeft | Qt::AlignBottom); mX->setLabelOrientation(Qt::Vertical); mX->setLineStyle(QwtPlotMarker::VLine); mX->setLinePen(QPen(Qt::black, 0, Qt::DashDotLine)); mX->setXValue(2.0 * M_PI); mX->attach(this); }
void Plot::updateGradient() { QPalette pal = palette();
const QColor buttonColor = pal.color( QPalette::Button );
#ifdef Q_WS_X11 // Qt 4.7.1: QGradient::StretchToDeviceMode is buggy on X11
QLinearGradient gradient( rect().topLeft(), rect().bottomLeft() ); gradient.setColorAt( 0.0, Qt::white ); gradient.setColorAt( 0.7, buttonColor ); gradient.setColorAt( 1.0, buttonColor ); #else QLinearGradient gradient( 0, 0, 0, 1 ); gradient.setCoordinateMode( QGradient::StretchToDeviceMode ); gradient.setColorAt( 0.0, Qt::white ); gradient.setColorAt( 0.7, buttonColor ); gradient.setColorAt( 1.0, buttonColor ); #endif
pal.setBrush( QPalette::Window, gradient ); setPalette( pal ); }
void Plot::resizeEvent( QResizeEvent *event ) { QwtPlot::resizeEvent( event ); #ifdef Q_WS_X11 updateGradient(); #endif }
int main(int argc, char **argv) { QApplication a(argc, argv);
Plot *plot = new Plot();
// We put a dummy widget around to have // so that Qt paints a widget background // when resizing
QWidget window; QHBoxLayout *layout = new QHBoxLayout( &window ); layout->setContentsMargins( 0, 0, 0, 0 ); layout->addWidget( plot );
window.resize(600,400); window.show();
return a.exec(); }
|
|
|
2098
|
Qt / Вопросы новичков / Re: Графики в приложении
|
: Январь 18, 2012, 11:56
|
где прописываются переменные среды я знаю. Вот только не знаю, что конкретно надо добавлять... интуитивно тут не совсем понятно, вот я и хочу научиться это делать с помощью форумчан. В sinusplot.pro оказалось дерево файлов, где sinplot.pro ################################################################ # Qwt Widget Library # Copyright (C) 1997 Josef Wilgen # Copyright (C) 2002 Uwe Rathmann # # This library is free software; you can redistribute it and/or # modify it under the terms of the Qwt License, Version 1.0 ################################################################
include( $${PWD}/../examples.pri )
TARGET = sinusplot
SOURCES = \ sinusplot.cpp
examples\examples.pri ################################################################ # Qwt Widget Library # Copyright (C) 1997 Josef Wilgen # Copyright (C) 2002 Uwe Rathmann # # This library is free software; you can redistribute it and/or # modify it under the terms of the Qwt License, Version 1.0 ###################################################################
QWT_ROOT = $${PWD}/.. include( $${QWT_ROOT}/qwtconfig.pri ) include( $${QWT_ROOT}/qwtbuild.pri )
TEMPLATE = app
INCLUDEPATH += $${QWT_ROOT}/src DEPENDPATH += $${QWT_ROOT}/src DESTDIR = $${QWT_ROOT}/examples/bin
QMAKE_RPATHDIR *= $${QWT_ROOT}/lib
contains(QWT_CONFIG, QwtFramework) {
LIBS += -F$${QWT_ROOT}/lib } else {
LIBS += -L$${QWT_ROOT}/lib }
IPATH = $${INCLUDEPATH} qtAddLibrary(qwt) INCLUDEPATH = $${IPATH}
contains(QWT_CONFIG, QwtSvg) {
QT += svg } else {
DEFINES += QWT_NO_SVG }
win32 { contains(QWT_CONFIG, QwtDll) { DEFINES += QT_DLL QWT_DLL } }
qwtbuild\qwtbuild.pri ############################################################################################################################### # Qwt Widget Library # Copyright (C) 1997 Josef Wilgen # Copyright (C) 2002 Uwe Rathmann # # This library is free software; you can redistribute it and/or # modify it under the terms of the Qwt License, Version 1.0 ################################################################
###################################################################### # qmake internal options ######################################################################
CONFIG += qt CONFIG += warn_on CONFIG += no_keywords CONFIG += silent
###################################################################### # release/debug mode ######################################################################
win32 { # On Windows you can't mix release and debug libraries. # The designer is built in release mode. If you like to use it # you need a release version. For your own application development you # might need a debug version. # Enable debug_and_release + build_all if you want to build both.
CONFIG += debug_and_release CONFIG += build_all } else {
CONFIG += release
VER_MAJ = $${QWT_VER_MAJ} VER_MIN = $${QWT_VER_MIN} VER_PAT = $${QWT_VER_PAT} VERSION = $${QWT_VERSION} }
linux-g++ { # CONFIG += separate_debug_info }
###################################################################### # paths for building qwt ######################################################################
MOC_DIR = moc RCC_DIR = resources !debug_and_release { OBJECTS_DIR = obj }
unix {
exists( $${QMAKE_LIBDIR_QT}/libqwt.* ) {
# On some Linux distributions the Qwt libraries are installed # in the same directory as the Qt libraries. Unfortunately # qmake always adds QMAKE_LIBDIR_QT at the beginning of the # linker path, so that the installed libraries will be # used instead of the local ones.
error( "local build will conflict with $${QMAKE_LIBDIR_QT}/libqwt.*" ) } }
qwtconfig\qwtconfig.pri ################################################################ # Qwt Widget Library # Copyright (C) 1997 Josef Wilgen # Copyright (C) 2002 Uwe Rathmann # # This library is free software; you can redistribute it and/or # modify it under the terms of the Qwt License, Version 1.0 ################################################################
QWT_VER_MAJ = 6 QWT_VER_MIN = 0 QWT_VER_PAT = 1 QWT_VERSION = $${QWT_VER_MAJ}.$${QWT_VER_MIN}.$${QWT_VER_PAT}
###################################################################### # Install paths ######################################################################
QWT_INSTALL_PREFIX = $$[QT_INSTALL_PREFIX]
unix { QWT_INSTALL_PREFIX = /usr/local/qwt-$$QWT_VERSION }
win32 { QWT_INSTALL_PREFIX = C:/Qwt-$$QWT_VERSION }
QWT_INSTALL_DOCS = $${QWT_INSTALL_PREFIX}/doc QWT_INSTALL_HEADERS = $${QWT_INSTALL_PREFIX}/include QWT_INSTALL_LIBS = $${QWT_INSTALL_PREFIX}/lib
###################################################################### # Designer plugin ######################################################################
QWT_INSTALL_PLUGINS = $${QWT_INSTALL_PREFIX}/plugins/designer # QWT_INSTALL_PLUGINS = $${QT_INSTALL_PREFIX}/plugins/designer
###################################################################### # Features # When building a Qwt application with qmake you might want to load # the compiler/linker flags, that are required to build a Qwt application # from qwt.prf. Therefore all you need to do is to add "CONFIG += qwt" # to your project file and take care, that qwt.prf can be found by qmake. # ( see http://doc.trolltech.com/4.7/qmake-advanced-usage.html#adding-new-configuration-features ) # I recommend not to install the Qwt features together with the # Qt features, because you will have to reinstall the Qwt features, # with every Qt upgrade. ######################################################################
QWT_INSTALL_FEATURES = $${QWT_INSTALL_PREFIX}/features # QWT_INSTALL_FEATURES = $${QT_INSTALL_PREFIX}/features
###################################################################### # Build the static/shared libraries. # If QwtDll is enabled, a shared library is built, otherwise # it will be a static library. ######################################################################
QWT_CONFIG += QwtDll
###################################################################### # QwtPlot enables all classes, that are needed to use the QwtPlot # widget. ######################################################################
QWT_CONFIG += QwtPlot
###################################################################### # QwtWidgets enables all classes, that are needed to use the all other # widgets (sliders, dials, ...), beside QwtPlot. ######################################################################
QWT_CONFIG += QwtWidgets
###################################################################### # If you want to display svg images on the plot canvas, or # export a plot to a SVG document ######################################################################
QWT_CONFIG += QwtSvg
###################################################################### # You can use the MathML renderer of the Qt solutions package to # enable MathML support in Qwt. Because of license implications # the ( modified ) code of the MML Widget solution is included and # linked together with the QwtMathMLTextEngine into an own library. # To use it you will have to add "CONFIG += qwtmathml" # to your qmake project file. ######################################################################
QWT_CONFIG += QwtMathML
###################################################################### # If you want to build the Qwt designer plugin, # enable the line below. # Otherwise you have to build it from the designer directory. ######################################################################
QWT_CONFIG += QwtDesigner
###################################################################### # If you want to auto build the examples, enable the line below # Otherwise you have to build them from the examples directory. ######################################################################
# QWT_CONFIG += QwtExamples
###################################################################### # When Qt has been built as framework qmake ( qtAddLibrary ) wants # to link frameworks instead of regular libs ######################################################################
macx:CONFIG(qt_framework, qt_framework|qt_no_framework) {
QWT_CONFIG += QwtFramework }
Ну и в исходниках код самой программы, записанный в файл sinusplot.cpp Надеюсь на помощь, так как я не смог отсюда ничего для себя извлечь...
|
|
|
2099
|
Qt / Вопросы новичков / Re: Графики в приложении
|
: Январь 18, 2012, 11:12
|
Да. Нужно было мне запуститься из другой командной строки... Проделал qmake qwt.pro nmake nmake install теперь у меня проблема в тестировании библиотеки... я открываю c:\qwt\qwt-6.0.1\examples\sinusplot\sinusplot.cpp через VS2008, при запуске выдает ошибки типа 1>sinusplot.obj : error LNK2019: unresolved external symbol "public: virtual __thiscall QwtPlot::~QwtPlot(void)" (??1QwtPlot@@UAE@XZ) referenced in function __unwindfunclet$??0Plot@@QAE@PAVQWidget@@@Z$0 да и в дизайнере плагины не заработали. Содержимое установленной папки (c:\Qwt-6.0.1\) скопировал в c:\Qt\4.7.4\, что не дало никакого толку. Единственное, что стало работать, так это в креаторе c:\qwt\qwt-6.0.1\examples\sinusplot\sinusplot.pro если открыть. Там прописывются какие-то пути, которых я не понял и компиляция и демонстрация примера идёт спокойно.
|
|
|
|
|