Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.85
M@ZAX@KEP
3 / 3 / 0
Регистрация: 03.10.2010
Сообщений: 8
#1

Не компилится даже "HelloWorld" -_- - C++

15.10.2010, 15:37. Просмотров 2642. Ответов 26
Метки нет (Все метки)

Пожалуйста, поставьте мне диагноз...
Создаю пустой проект qwerty в Visual Studio, добавляю единственный файл - qwerty.cpp Программа для дегенератов "Hello World"...
C++
1
2
3
4
5
6
7
8
#include <iostream>
 
int main(){
    int i(0);
    std::cout << "Hello, world! =)\n";
    std::cin >> i;
    return 0;
}
Запускается только на тачке с Visual Studio. В другой ОС (на том же металле) откомпиленная прога страстно жаждет DLL-ку MSVCP100.dll
Потом в свойствах проекта выбрал "Использовать MFC в статической библиотеке" (было "в общей библиотеке windows"), как писали тут и меня послало на
1>------ Построение начато: проект: qwerty, Конфигурация: Release Win32 ------
1>Построение начато 05.10.2010 18:14:16.
1>InitializeBuildStatus:
1> Создание "Release\qwerty.unsuccessfulbuild", так как было задано "AlwaysCreate".
1>ClCompile:
1> Для всех выходных данных обновления не требуется.
1> qwerty.cpp
1>LIBCMT.lib(wwincrt0.obj) : error LNK2001: неразрешенный внешний символ "_wWinMain@16"
1>C:\Documents and Settings\MX\мои документы\visual studio 2010\Projects\Study\Release\qwerty.exe : fatal error LNK1120: 1 неразрешенных внешних элементов
1>
1>СБОЙ построения.
1>
1>Затраченное время: 00:00:02.64
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
Откопал этот файл (LIBCMT.lib) поиском где-то в папке с Visual Studio, копирнул его в папку проекта (+ в папку решения\Release, где создаётся exe_шник) - не помогло.
\me в панике xD

ЗЫ Зря Айвор Хортон в своей толстенной книженции ничего не написал про компиляцю и сопровождение программы))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.10.2010, 15:37
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Не компилится даже "HelloWorld" -_- (C++):

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно" - C++
В зависимости от времени года &quot;весна&quot;, &quot;лето&quot;, &quot;осень&quot;, &quot;зима&quot; определить погоду &quot;тепло&quot;, &quot;жарко&quot;, &quot;холодно&quot;, &quot;очень холодно&quot;. Я так...

Реализовать классы "Воин", "Пехотинец", "Винтовка", "Матрос", "Кортик" (наследование) - C++
Разработать программу с использованием наследования классов, реализующую классы: − воин; − пехотинец(винтовка); − матрос(кортик). ...

Консоль даже не запускается, и + "выражение должно иметь тип указателя на обьект" - C++
выражение должно иметь тип указателя на обьект. код: void showArr(int massivInna, int N) { for (int i=0; i&lt;(N+15); i++) { ...

Создать абстрактный класс "Издание" и производные классы "Книга", "Статья", "Электронный ресурс" - C++
1. Создать абстрактный класс Издание с методами, позволяющими вывести на экран информацию об издании, а также определить является ли данное...

Создать класс "Вентилятор" содержащий в себе классы: "Двигатель", "Контроллер", "Пульт управления" - C++
Помогите с кодом написания задачи, не понимаю как написать классы в классе. Нужно создать класс &quot;вентилятор&quot; содержащий в себе классы:...

Создать класс "Книга" с полями "название книги", "количество страниц", "год издания" - C++
Создать класс Книга поля: название книги,количество страниц,год издания методы: вычислить сколько лет книге и количество дней прошедших...

26
ForEveR
В астрале
Эксперт С++
7992 / 4751 / 321
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
15.10.2010, 22:11 #16
Это? 8.5.5

5 To zero-initialize storage for an object of type T means:

--if T is a scalar type (_basic.types_), the storage is set to the
value of 0 (zero) converted to T;

--if T is a non-union class type, the storage for each nonstatic data
member and each base-class subobject is zero-initialized;

--if T is a union type, the storage for its first data member5) is
zero-initialized;

--if T is an array type, the storage for each element is zero-initial-
ized;

--if T is a reference type, no initialization is performed.

To default-initialize an object of type T means:

--if T is a non-POD class type (_class_), the default constructor for
T is called (and the initialization is ill-formed if T has no acces-
sible default constructor);

--if T is an array type, each element is default-initialized;

--otherwise, the storage for the object is zero-initialized.

A program that calls for default-initialization of an entity of refer-
ence type is ill-formed. If T is a cv-qualified type, the cv-unquali-
fied version of T is used for these definitions of zero-initialization
and default-initialization.
0
M128K145
Эксперт JavaЭксперт С++
8316 / 3536 / 143
Регистрация: 03.07.2009
Сообщений: 10,708
15.10.2010, 22:16 #17
Цитата Сообщение от Manjak Посмотреть сообщение
последний пункт "слегка" не так переводится
Я не переводил дословно, ключевое слово "otherwise" и отсутствие слова "constructor".

Цитата Сообщение от Manjak Посмотреть сообщение
А про инициализацию с помощью () немного не в том разделе написано
Ваши слова:
Цитата Сообщение от Manjak Посмотреть сообщение
Пункт 8.5.5, дефолтная инициализация стандартных типов
Цитата из этого пункта, страница 142


Для простых типов, к которым и относится int, слово "constructor" ни разу не применялось в пункте 8.5
0
M@ZAX@KEP
3 / 3 / 0
Регистрация: 03.10.2010
Сообщений: 8
16.10.2010, 10:59  [ТС] #18
Вы же написали что програма не компилитсо,как тогда она запускаетсо ?
Со стандартными свойствами проекта запускается и компилится, но на других компах, как я уже написал:
В другой ОС (на том же металле) откомпиленная прога страстно жаждет DLL-ку MSVCP100.dll
А перестаёт компилится после установки в свойствах "Использовать MFC в статической библиотеке"

easybudda, да, я тоже думал что это из-за подключения заголовочного файла... но ведь не буду же я всё кодить сам без этих файлов? xD В любом случае они должны работать. Кстати, у меня же пустой проект, там нет этого stdafx.h))

Не по теме:

ЗЫ Manjak и M128K145, вы о чём вообще? Я лишь спросил, как решить ошибку при компиляции, вы же развернули дискуссию о стандартах языка и различиях в способах инициализации переменных... вы прикалываетесь что ли или к чему это всё тут? Спасибо за оффтоп.

0
easybudda
Модератор
Эксперт CЭксперт С++
9970 / 5893 / 997
Регистрация: 25.07.2009
Сообщений: 11,165
16.10.2010, 13:05 #19
Цитата Сообщение от M@ZAX@KEP Посмотреть сообщение
Кстати, у меня же пустой проект, там нет этого stdafx.h
действительно странно... сделал всё то же самое и вот:
Не компилится даже "HelloWorld" -_-

тогда попробуйте избавиться от русских букв в пути к проекту, то есть из папки "мои документы" его в корень куда-нибудь вытащите - кому-то вроде помогало...
1
Nameless One
Эксперт С++
5783 / 3432 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
16.10.2010, 13:15 #20
Цитата Сообщение от M@ZAX@KEP Посмотреть сообщение
LIBCMT.lib(wwincrt0.obj) : error LNK2001: неразрешенный внешний символ "_wWinMain@16"
1>C:\Documents and Settings\MX\мои документы\visual studio 2010\Projects\Study\Release\qwerty.exe : fatal error LNK1120: 1 неразрешенных внешних элементов
Может тип проекта неправильно выбран? Нужно выбирать не Win32 Application, а Console Application

Цитата Сообщение от easybudda Посмотреть сообщение
тогда попробуйте избавиться от русских букв в пути к проекту, то есть из папки "мои документы" его в корень куда-нибудь вытащите - кому-то вроде помогало...
Да вроде студия нормально понимает русские буквы в пути... По крайней мере у меня таких проблем нет
1
easybudda
Модератор
Эксперт CЭксперт С++
9970 / 5893 / 997
Регистрация: 25.07.2009
Сообщений: 11,165
16.10.2010, 13:24 #21
Цитата Сообщение от Nameless One Посмотреть сообщение
Нужно выбирать не Win32 Application, а Console Application
ни то, ни другое
Цитата Сообщение от M@ZAX@KEP Посмотреть сообщение
Создаю пустой проект
1
Nameless One
Эксперт С++
5783 / 3432 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
16.10.2010, 13:41 #22
Цитата Сообщение от easybudda Посмотреть сообщение
ни то, ни другое
А с чего тогда компилятор ищет WinMain?

Пусть ТС попробует создать консольный проект и отпишется, если не получится. А там уже нужно будет смотреть опции компиляции/линковки
0
easybudda
Модератор
Эксперт CЭксперт С++
9970 / 5893 / 997
Регистрация: 25.07.2009
Сообщений: 11,165
16.10.2010, 13:48 #23
Цитата Сообщение от Nameless One Посмотреть сообщение
А с чего тогда компилятор ищет WinMain?
кстати да...

M@ZAX@KEP, точно это выбираете?
Не компилится даже "HelloWorld" -_-
0
M@ZAX@KEP
3 / 3 / 0
Регистрация: 03.10.2010
Сообщений: 8
16.10.2010, 20:56  [ТС] #24
Цитата Сообщение от easybudda Посмотреть сообщение
действительно странно... сделал всё то же самое и вот:
Вложение 45717

тогда попробуйте избавиться от русских букв в пути к проекту, то есть из папки "мои документы" его в корень куда-нибудь вытащите - кому-то вроде помогало...
Ну у меня тоже так всё работает.. попробуйте теперь откомпилировать в конфигурации Release и запустить на другом компе (без Visual Studio, .NET_Framework_a и прочих радостей)

Да вроде студия нормально понимает русские буквы в пути... По крайней мере у меня таких проблем нет
Аналогично.

Пусть ТС попробует создать консольный проект и отпишется, если не получится.
У меня такая шляпа абсолютно со всеми проектами - хоть консольными, хоть пустыми, хоть win32 хоть MFC - всё такие финты выделывает >_<
0
Kastaneda
Jesus loves me
Эксперт С++
4749 / 2953 / 242
Регистрация: 12.12.2009
Сообщений: 7,493
Записей в блоге: 2
Завершенные тесты: 1
17.10.2010, 09:27 #25
По-моему эта тема поднималась не раз) (если я правильно понял суть проблемы, всю тему не читал)
Решение: статическая компоновка.
Заходим в опции проекта, находим там опции компилятора (C/C++ -> Code Generation), и меняем параметр Runtime Library с "Multi Threaded DLL (/MD)" на "Multi Threaded (/MT)". Для отладочной версии программы нужно поменять "Multi Threaded Debug DLL (/MDd)", на "Multi Threaded Debug (/MTd)". После перекомпиляции, несем программу на любую машину и запускаем.

Добавлено через 24 минуты
По поводу
C++
1
int i(0);
читал в книге Эккеля "Философия С++" - это псевдоконструктор, создан для совместимости с пользовательскими типами.
1
M128K145
Эксперт JavaЭксперт С++
8316 / 3536 / 143
Регистрация: 03.07.2009
Сообщений: 10,708
17.10.2010, 10:22 #26
Цитата Сообщение от Kastaneda Посмотреть сообщение
это псевдоконструктор, создан для совместимости с пользовательскими типами.
Это кривой перевод, для простых типов нет конструкторов, даже псевдо-
0
M@ZAX@KEP
3 / 3 / 0
Регистрация: 03.10.2010
Сообщений: 8
17.10.2010, 22:21  [ТС] #27
Kastaneda, я уже не верил что оно заработает, премного благодарен! =) Правда не совсем понятно, почему эти настройки не являются стандартными, если без них на других тачках не работает...

ЗЫ по поводу "тема поднималась не раз"... ни гугл, ни поиск по форуму мне ничего подобного не отрыли, может стоит где-то в факе об этом написать или в другой прикреплённой теме. Ибо всё что я нашёл после длительных поисков, была вот эта очень полезная и познавательная (xD) закреплённая тема.

ЗЗЫ вопрос решил, рецепт счастья нашёл, всем спасибо))

Не по теме:

ЗЗЗЫ у вас что, кол-во сообщений на 2 умножается? о_О xD

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.10.2010, 22:21
Привет! Вот еще темы с ответами:

Определить тип данных "Запись", имеющий поля "Фамилия", "Пол", "Зарплата" - C++
определить тип данных запись имеющий поля фамилия пол зарплата. определить массив из 10 записей. в программе ввести в массив данные и...

Структура «Преподаватель» с полями "ФИО", "стаж", "категория", "нагрузка" - C++
Функция - расчёт зарплаты по нагрузке и оплате часа для определенной категории. Категория Оплата часа Вторая 150 Первая 200 ...

Создать иерархию классов "Фирма", "Бухгалтер", "Сотрудник", "Зарплата" - C++
Само по себе понятие &quot;зарплата&quot; не особенно конкретное: оно включает и почасовую, и ставочную зарплату, и комиссионные, и процент с продаж....

по строкам.замените в слове сочетание "му" на "а" , а букву "ы" на "ца". очень нужно - C++
замените в слове сочетание &quot;му&quot; на &quot;а&quot; , а букву &quot;ы&quot; на &quot;ца&quot;. очень нужно Добавлено через 21 час 4 минуты неужели никто не знает...


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

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru