Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.76/51: Рейтинг темы: голосов - 51, средняя оценка - 4.76
Временно недоступен
 Аватар для #pragma
957 / 228 / 14
Регистрация: 12.04.2009
Сообщений: 926

Можно ли как-то указать в Makefile, чтобы часть файлов компилировал компилятор C?

05.11.2009, 12:19. Показов 10123. Ответов 41

Студворк — интернет-сервис помощи студентам
Я пробую программу Qt 4 Designer,и после всех настроек файла .ui я скопировал себе код интерфейса в программу,но она не компилируется- пишет,что стандарт C++ не поддерживает тип long long и указывает на один из typedef-ов в самой библиотеке.Вроде написано,что библиотека писалась на С++,я не понимаю,как так.Как можно выйти из положения,может,просто скомпилировать именно эти файлы компилятором Си? Или не получится?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.11.2009, 12:19
Ответы с готовыми решениями:

Как можно определить переменную в файле configure.in,чтобы её можно было использовать в Makefile?
Ситуация такая - В проекте конфигуратор программы используется только для проверок на наличие программ/библиотек,Automake не...

Как указать полный путь к компилятору сс в Makefile?
Такая ситуация: компилятор сс, компилятор находится не там где прописано в переменной PATH. Как прописать путь к компилятору в команде...

Как послать письмо из VB, так чтобы можно было вручную указать мыло отправителя?
Как послать письмо из VB, так чтобы можно было вручную указать мыло отправителя?

41
Эксперт С++
 Аватар для niXman
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
07.11.2009, 07:15
Студворк — интернет-сервис помощи студентам
#pragma, Ну не знаю... Впервые вижу подобную ситуацию.
1
Временно недоступен
 Аватар для #pragma
957 / 228 / 14
Регистрация: 12.04.2009
Сообщений: 926
07.11.2009, 07:57  [ТС]
Прочитал в вики:
Code
1
On 32-bit systems, a long long int is an integer type that has at least 64 useful bits. C99 introduced this type to standard C, and most C++ compilers support it as an extension. C++0x will add this type to standard C++.
http://en.wikipedia.org/wiki/C... g_long_int То есть с выходом новой версии стандарта этот тип уже будет добавлен.
А можно в Makefile как-то указать,чтобы одни файлы компилировались с одними флагами,а потом эти флаги убирались,и дальше компиляция продолжалась уже без них? Навроде раздельной компиляции.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
07.11.2009, 12:56
Тему всю не читал, но вроде бы проблема в опции -ansi, которую ты используешь. В стандарте ansi нет типа long long
2
Эксперт С++
 Аватар для niXman
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
07.11.2009, 12:59
Evg, естественно. а где он эту опцию указывает?
1
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
07.11.2009, 13:00
Цитата Сообщение от #pragma Посмотреть сообщение
А можно в Makefile как-то указать,чтобы одни файлы компилировались с одними флагами,а потом эти флаги убирались,и дальше компиляция продолжалась уже без них? Навроде раздельной компиляции.
Можно. Только по простому делается так, чтобы у всех было одинаково, но для отдельных файлов добавляется дополнительная опция. Но вот чтобы убиралась - что-то с ходу и не скажу как сделать, кроме как через ж...у - для каждого файла расписать флаги, (но зависимости при этом не менять).

После установки семёрки у меня не встали виртуальные машины, а потому по ходу их переустанавливать придётся. Так что пока поэкспериментировать не на чем. Либо до понедельника и на работе

Добавлено через 33 секунды
Цитата Сообщение от niXman Посмотреть сообщение
Evg, естественно. а где он эту опцию указывает?
Ну я типа видел его исходники
1
Эксперт С++
 Аватар для niXman
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
07.11.2009, 13:04
Цитата Сообщение от Evg Посмотреть сообщение
Ну я типа видел его исходники
это наверное только для посвященных.
1
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
07.11.2009, 13:51
Цитата Сообщение от niXman Посмотреть сообщение
это наверное только для посвященных.
Там ты уже побывал
1
Эксперт С++
 Аватар для niXman
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
07.11.2009, 13:54
Аа... Вот вы о чем. А на* ему эту опцию компилятору указывать?
1
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
07.11.2009, 13:59
Цитата Сообщение от niXman Посмотреть сообщение
Аа... Вот вы о чем. А на* ему эту опцию компилятору указывать?
Чтобы подстраховаться от использования нестандартных конструкций. По умолчанию gcc работает со своими gnu-расширениями. gcc был моим первым компилятором для Си. После паскаля я совершено без зазрения совести использовал вложенные функции (когда функция определена внутри другой функции), ибо язык GNU C это позволяет. И лишь какое-то время спустя узнал, что "нормальные" компиляторы оказывается этого не могут. И было куча проблем с тем, чтобы переписывать эти исходники на "нормальный" Си. Так же и здесь #pragma хочет, чтобы его код компилировался любым компилятором
1
Эксперт С++
 Аватар для odip
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
07.11.2009, 20:53
Идем в каталог $(QTDIR)\mkspecs и смотрим список(имя каталога - это имя платформы/ОС/компилятора). Я уверен что их там больше чем ты хотя бы слышал
Мне на работе приходиться заниматься установкой Qt на разные системы, так что этот каталог мне знаком, приходилось и спеки в нем править.
Так что можешь свою уверенность использовать по прямому назначению
Кстати Qt 4.x не собирается на VS6.
Из-за этого в свое время пришлось покупать VC++ 2003.Net.

Добавлено через 7 минут
-pedantic
А чего ты сразу не сказал что выставил нестандартные опции !
Все нужно клещами вытаскивать ...
1
Временно недоступен
 Аватар для #pragma
957 / 228 / 14
Регистрация: 12.04.2009
Сообщений: 926
08.11.2009, 01:58  [ТС]
Проблема всё ещё актуальна для меня,не хочется менять опции компиляции.У меня появилась такая идея:
Делаю интерфейс в виде отдельной библиотеки .so (как и было предложено ранее),причём у неё свой Makefile,компилируется отдельно,а потом её просто слинковать в общий файл.Так получится?
Можно ли сделать что-то подобное в Makefile:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
CXX = g++
CXXFLAGS      = -pipe -O2 -Wall -W -D_REENTRANT $(DEFINES)
LDFLAGS          = $(SUBLIBS)  -L/usr/lib -lQtGui -lQtCore -lpthread
DFLAGS = -MD
LD = $(CXX)
OFILES = тут список файлов .о для библиотеки
TARGET = /gui/lib/libgui.so
all: Makefile $(TARGET)
 
$(TARGET):  $(OBJECTS)  
    $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS)
 
#Тут типа флаги убираются
CXXFLAGS      -= -pipe -O2 -Wall -W -D_REENTRANT $(DEFINES)
LDFLAGS         -= $(SUBLIBS)  -L/usr/lib -lQtGui -lQtCore -lpthread
 
#Тут добавляются уже другие
CXXFLAGS += -ansi -pedantic -pedantic-errors -Wall
LDFLAGS += -lSDL -L/gui/lib/libgui.so
 
OFILES = debugger.o error_handler.o value_class.o variable_class.o parser.o  \
         syntax.o expression.o statement.o interp.o memory.o array.o label.o \
         options.o function.o lib.o graphics/graphics.o driver.o
CXXFLAGS += -I. -Igraphics
RM = rm -f
TARGET = basin
 
all: $(TARGET)
 
$(TARGET): $(OFILES)
    $(LD) $(LDFLAGS) $(OFILES) -o $(TARGET)
 
-include $(OFILES:.o=.d)
 
%.o : %.cpp
    $(CXX) -c $(DFLAGS) $(CXXFLAGS) $< -o $@
В-общем,сделать в одном Makefile сборку по порядку: сначала библиотека,потом главный файл с другими флагами? Надеюсь,мысль передал понятно.
0
Эксперт С++
 Аватар для niXman
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
08.11.2009, 02:28
Цитата Сообщение от odip Посмотреть сообщение
Мне на работе приходиться заниматься установкой Qt на разные системы, так что этот каталог мне знаком, приходилось и спеки в нем править.
А это как понимать? Внушение какое-то
Qt нужно использовать совместо либо с Visual Studio 2003/2005/2008.
Либо брать Qt SDK и там свой компилятор - mingw gcc.
С другими компиляторами не факт что будет работать.
Добавлено через 1 минуту
В любом случае, мне приходится Qt не только устанавливать

Добавлено через 3 минуты
#pragma, Я вот только не понял, для чего ты указываешь -ansi ?
0
Временно недоступен
 Аватар для #pragma
957 / 228 / 14
Регистрация: 12.04.2009
Сообщений: 926
08.11.2009, 02:47  [ТС]
Цитата Сообщение от niXman Посмотреть сообщение
#pragma, Я вот только не понял, для чего ты указываешь -ansi ?
Я сам толком не знаю,не забывай,я учусь.Но в самой опции написано,что убираются все "GNU extensions" которые конфликтуют со стандартом ISO C++.Такая опция не помешает вначале,чтобы случайно не народить вредных привычек,а потом долго думать,почему программа не работает.
То есть я руководствуюсь правилом: если есть опция,ужесточающая контроль над кодом при компиляции,то я её включаю.
0
Эксперт С++
 Аватар для niXman
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
08.11.2009, 02:48
#pragma, Так ты сам от себя страхуешься?
Купи книжку по Си..
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
08.11.2009, 12:48
#pragma, делать отдельную динамическую библиотеку получится. ТОлько вот в флаге "-L/gui/lib/libgui.so" у тебя после буквы "L" слэш лишний, ибо с ним поиск будет весись в "/gui/lib/libgui.so" (т.е. от корневого каталога, а не текущего)

Сейчас ты в Makefile навалил какую-то одну большую общую кашу. Сборки динамической библиотеки, условно, делается так:

Code
1
2
3
g++ -fPIC t1.c -c -o t1.o
g++ -fPIC t2.c -c -o t2.o
g++ -shared t1.o t2.o -L/.... -lQt -l... -o libgui.so
Опция -fPIC нужна для генерации позиционно-независимого кода (PIC - position-independent code). ТОлько в этом случае библиотека *.so будет не только динамической, но и разделяемой: т.е. если запущено 50 процессов, требующих эту библиотеку, то в физической памяти код этой библиотеки будет только в одном экземпляре (read-write данные при этом у каждого процесса дублируются, но данных обычно во много раз меньше, чем кода)

Далее встаёт вопрос с тем, как её использовать. Т.е. при линковке её подцеплятьстандартно через опции -L -l. Но в момент запуска приложения динамический загрузчик должен будет найти эту библиотеку. А поиск ведётся только по стандартным путям (а тебе надо, чтобы библиотека подцепилась откуда-то рядышком с бинарником). Есть разные способы это сделать, но все они сводятся к тому, что нужно задавать некий абсолютный путь до каталога, где лежит динамическая библиотека. Нормальных общих вариантов для решения этой проблемы нет, а потому если программа устанавливается НЕ в стандартные каталоги, то обычно с программой поставляется скрипт, который устанавливает переменную окружения LD_LIBRARY_PATH и запускает программу

niXman, в 29-м посту я тебе всё объяснил. Книжка по Си не поможет. Например, ты напишешь код "x = (a>b) ? : y;" и из-под gcc он будет работать. ОТкуда ты узнаешь, что с точки зрения стандартного Си этот код некорректен? Предлагаешь на каждую строку кода лезть в книжку и проверять, правильно это или нет?
2
Временно недоступен
 Аватар для #pragma
957 / 228 / 14
Регистрация: 12.04.2009
Сообщений: 926
09.11.2009, 05:39  [ТС]
Цитата Сообщение от Evg Посмотреть сообщение
Есть разные способы это сделать, но все они сводятся к тому, что нужно задавать некий абсолютный путь до каталога, где лежит динамическая библиотека. Нормальных общих вариантов для решения этой проблемы нет, а потому если программа устанавливается НЕ в стандартные каталоги, то обычно с программой поставляется скрипт, который устанавливает переменную окружения LD_LIBRARY_PATH и запускает программу
Вот что я накопал по этому вопросу:
http://www.prefetch.net/articl... brary.html
Правда там всё на английском,и хотя читаю неплохо,многие моменты не понятны из-за специфики/незнания темы.Но как я понял,там этот способ осуждают и предлагают альтернативный(и вроде бы более действенный).
В-общем надо будет придумать какой-то универсальный скрипт,и желательно,чтобы это не требовало полномочий суперпользователя.Лишний раз sudo вводить напрягает новичков.

Добавлено через 1 час 25 минут
Ой я даже много доводов против этого нашёл,достаточно задать гуглу вопрос: почему опция X это плохо?
http://www.xahlee.org/UnixReso... dpath.html Я так понял в последних версиях линкера добавили специальную опцию -R,указывающую где искать библиотеку в runtime,но я так примерно понял,может,ошибся.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
09.11.2009, 09:06
Опция -R (или, что более характерно для gcc/gld опция -Wl,-rpath=) - это добавление каталога в путь поиска динамических библиотек. Требует подстановки АБСОЛЮТНОГО пути. Т.е. после этого у тебя программа становится привязанной к конкретному месту. Вариант в LD_LIBRARY_PATH более гибкий. Opera, например пошла по тому же пути со скриптом - скрит в run-time определяет своё местоположение, выставляет переменные окружения, после чего запускает бинарник.

Тебе для твоих целей для начала сойдёт и вариант -R. (-Wl,-rpath=.) - в этом случае тебе придётся держать динамические библиотеки в текущем каталоге (либо во внутреннм, но тогда в опцию -R подавай относительный путь). В этом случае бинарник у тебя будет нормально запускаться только из текущего каталога, но хоть поймёшь, как с динамическими библиотеками работать
1
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
09.11.2009, 12:56
Цитата Сообщение от #pragma Посмотреть сообщение
А можно в Makefile как-то указать,чтобы одни файлы компилировались с одними флагами,а потом эти флаги убирались,и дальше компиляция продолжалась уже без них? Навроде раздельной компиляции.
Можно делать добавочные опции
В ревизии 52 я внёс следующую правку в Makefile

Вместо

Code
1
2
%.o : %.cpp
    $(CXX) -c $(DFLAGS) $(CXXFLAGS) $< -o $@
сделал

Code
1
2
3
CFLAGS-memory.cpp = -DAAAAAAAAAAAAAAAAAAAAAA
%.o : %.cpp
    $(CXX) -c $(DFLAGS) $(CXXFLAGS) $(CFLAGS-$<) $< -o $@
теперь файл memory.cpp компилируется сдополнительными флагами. В gcc введено куча настроечных опций, а так же опции, отключающие эти действия (типа -fbuiltin, -fno-builtin). Отключающие опции сделаны именно для таких случаев - когда нужно отрезать какую-то функциональность, но делать это нужно через дополнительную опцию. Для опции -ansi по ходу дела нету выключающей опции, а потому этот финт ушаи наверное не прокатит. Либо надо добавлять опцию -std=..., но там надо копаться в документации
1
Временно недоступен
 Аватар для #pragma
957 / 228 / 14
Регистрация: 12.04.2009
Сообщений: 926
11.11.2009, 05:43  [ТС]
Пробую скомпилировать,пришлось сначала запускать qmake,она сгенерила Makefile,я его немного поправил,вроде всё верно?
Заголовок Makefile
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
####### Compiler, tools and options
CC            = gcc
CXX           = g++
DEFINES       = -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED
CFLAGS        = -pipe -O2 -Wall -W -D_REENTRANT $(DEFINES)
CXXFLAGS      = -pipe -O2 -Wall -W -D_REENTRANT $(DEFINES)
INCPATH       = -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -Igraphics -I. -I.
LINK          = g++
LFLAGS        = -Wl,-rpath=libgui/libgui.so,-O1
LIBS          = $(SUBLIBS)  -L/usr/lib -lQtGui -lQtCore -lpthread -Llibgui/libgui.so -lSDL
AR            = ar cqs
RANLIB        = 
QMAKE         = /usr/bin/qmake
TAR           = tar -cf
COMPRESS      = gzip -9f
COPY          = cp -f
SED           = sed
COPY_FILE     = $(COPY)
COPY_DIR      = $(COPY) -r
INSTALL_FILE  = install -m 644 -p
INSTALL_DIR   = $(COPY_DIR)
INSTALL_PROGRAM = install -m 755 -p
DEL_FILE      = rm -f
SYMLINK       = ln -sf
DEL_DIR       = rmdir
MOVE          = mv -f
CHK_DIR_EXISTS= test -d
MKDIR         = mkdir -p
####### Output directory

Но почему-то получаю ошибки:
Ошибки
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
$ make
g++ -Wl,-rpath=libgui/libgui.so,-O1 -o Interpreter array.o debugger.o driver.o 
error_handler.o expression.o function.o interp.o label.o lib.o memory.o options.o 
parser.o statement.o syntax.o value_class.o variable_class.o graphics.o 
moc_highlighter.o moc_mainwindow.o 
   -L/usr/lib -lQtGui -lQtCore -lpthread -Llibgui/libgui.so -lSDL
driver.o: In function `main':
driver.cpp:(.text+0x3d84): undefined reference to `qInitResources_dockwidgets()'
driver.cpp:(.text+0x3d9a): undefined reference to `MainWindow::MainWindow(QWidget*)'
driver.cpp:(.text+0x3dcb):undefined reference to `MainWindow::pFuncSave(char*,
     void (*)(char const*),void (*)(), void (*)(), void (*)())'
moc_highlighter.o:(.rodata._ZTV11Highlighter[vtable for Highlighter]+0x38): 
                undefined reference to `Highlighter::highlightBlock(QString const&)'
moc_mainwindow.o: In function `MainWindow::qt_metacall(QMetaObject::Call, int, void**)':
moc_mainwindow.cpp:(.text+0x8c):
                undefined reference to `MainWindow::openFile(QString const&)'
moc_mainwindow.cpp:(.text+0xbe): 
                undefined reference to `MainWindow::openFile(QString const&)'
moc_mainwindow.cpp:(.text+0xcc): undefined reference to `MainWindow::run()'
moc_mainwindow.cpp:(.text+0xdc): undefined reference to `MainWindow::interp()'
moc_mainwindow.cpp:(.text+0xec): undefined reference to `MainWindow::newFile()'
moc_mainwindow.cpp:(.text+0xfc): undefined reference to `MainWindow::about()'
moc_mainwindow.cpp:(.text+0x10c): undefined reference to `MainWindow::print()'
moc_mainwindow.cpp:(.text+0x11c): undefined reference to `MainWindow::save()'
moc_mainwindow.cpp:(.text+0x12c): undefined reference to `MainWindow::undo()'
collect2: ld returned 1 exit status
make: *** [Interpreter] Error 1

Как будто линкер эту библиотеку не видит.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
11.11.2009, 09:42
В -Wl,-rpath= и -L надо подавать пути до КАТАЛОГА, где лежит файл, а в -l - по сути имя библиотеки (без начинающего "lib" и завершающего суффикса). Т.е. правильно будет -Wl,-rpath=libgui -Llibgui -lgui
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.11.2009, 09:42
Помогаю со студенческими работами здесь

Можно ли как то в Embarcadero RAD Studio XE6 указать структуру файлов скомпилированого проекта
Доброго времени суток. Уважаемые знатоки, вопрос: Можно ли как то в Embarcadero RAD Studio XE6 указать структуру файлов...

Как правильно указать путь к файлу Word-шаблону чтобы проект можно было запускать с других компьютеров?
Подскажите пожалуйста!!! Как правильно указать путь к файлу Word-шаблону(по которому строится отчет из бд) чтобы проект можно было...

Можно ли как нибудь явно указать тип переменной, чтобы ИДЕ рассказала мне все что я хочу знать об объекте?
Можно как нибудь указать тип, но не через оператор new...

Как в этом Makefile указать опцию для сбора информации для дебагинга?
SDK_PATH:=$(shell pwd)/../../ARDroneLib PC_TARGET=yes USE_LINUX=yes ifdef MYKONOS include $(ARDRONE_CUSTOM_CONFIG) ...

Как в makefile сделать чтобы проект собирался из директории src
Всем доброго времени суток, подскажите как мне в makefile сделать так чтобы проект собирался из директории src? и после сборки бинарник...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод Сайт называется reddit: The Thinkpad X220 Tablet is the best budget school laptop period. Это. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru