Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
0 / 0 / 0
Регистрация: 18.05.2025
Сообщений: 7

Удаляется exe файл при попытке компиляции

18.05.2025, 21:35. Показов 9740. Ответов 37
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Требуется написать программу, состоящую из нескольких файлов и использующую то, что в них содержится. В одном из файлов объявляется класс, его свойства и методы, во втором пишется их реализация. После подключения этих файлов к главному и попытке какого-либо взаимодействия между ними (объявления, определения переменной класса, создание вектора объектов этого класса и подобное) удаляется ехе файл и программа закономерно не может отработать. Проблема не в антивирусе, поскольку этот код я писал в файле, экзешник которого добавлен в исключения и который при запуске любой другой программы работает нормально. При чем онлайн компиляторы делают всё исправно. Вот код.

Файл book.h

C++
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
#pragma once
#include <string>
 
using namespace std;
 
class book{
    private:
        string author;
        string title;
        string publisher;
        int year;
        int pages;
    public:
        book();
        book(string inauthor, string intitle, string inpublisher, int inyear, int inpages);
        book(const book& orig);
 
        ~book();
 
        void setauthor(string inauthor);
        void settitle(string intitle);
        void setpublisher(string inpublisher);
        void setyear(int inyear);
        void setpages(int inpages);
 
        string getauthor();
        string gettitle();
        string getpublisher();
        int getyear();
        int getpages();
 
        void show();
};
Файл book.cpp

C++
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#include "book.h"
#include <iostream>
 
book::book(){
    author="";
    title="";
    publisher="";
    year=0;
    pages=0;
}
 
book::book(string inauthor, string intitle, string inpublisher, int inyear, int inpages){
    author=inauthor;
    title=intitle;
    publisher=inpublisher;
    year=inyear;
    pages=inpages;
}
 
book::book(const book& orig){
    author=orig.author;
    title=orig.title;
    publisher=orig.publisher;
    year=orig.year;
    pages=orig.pages;
}
 
book::~book(){
}
 
void book::setauthor(string inauthor){
    author=inauthor;
}
void book::settitle(string intitle){
    title=intitle;
}
void book::setpublisher(string inpublisher){
    publisher=inpublisher;
}
void book::setyear(int inyear){
    year=inyear;
}
void book::setpages(int inpages){
    pages=inpages;
}
 
string book::getauthor(){
    return author;
}
string book::gettitle(){
    return title;
}
string book::getpublisher(){
    return publisher;
}
int book::getyear(){
    return year;
}
int book::getpages(){
    return pages;
}
 
void book::show(){
    cout<<"Book's author: "<<author<<"\n"
    <<"Book's title: "<<title<<"\n"
    <<"Book's publisher: "<<publisher<<"\n"
    <<"Book's year of release: "<<year<<"\n"
    <<"Number of pages in the book: "<<pages<<"\n \n";
}
Файл main.cpp

C++
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#include "book.h"
#include <iostream>
#include <vector>
 
void menu(){
    cout<<"    Choose an option \n"
    <<"1: Add new books to the list \n"
    <<"2: Get a list of books of the same author \n"
    <<"3: Get a list of books with less pages than a certain amount \n"
    <<"4: Get a list of books published after a certain year: \n"
    <<"5: Close the program \n \n";
}
 
book donation(int iter){
    string newauthor;
    string newtitle;
    string newpublisher;
    int newyear;
    int newpages;
 
    cout<<iter<<" Enter the book's author: ";
    cin>>newauthor;
    
    cout<<" Enter the book's title: ";
    cin>>newtitle;
 
    cout<<" Enter the book's publisher: ";
    cin>>newpublisher;
 
    cout<<" Enter the book's year of release: ";
    cin>>newyear;
 
    cout<<" Enter the book's number of pages: ";
    cin>>newpages;
 
    book newbook(newauthor, newtitle, newpublisher, newyear, newpages);
 
    return newbook;
}
 
 
int main(){
    int amount;
    string key="";
    string prefauthor;
    int prefpages;
    int prefyear;
    vector <book> library={};
    while (1){
        menu();
        cin>>key;
        if (key=="1"){
            cout<<"\n How many books do you want to add? \n";
            cin>>amount;
            for (int i=0; i<amount; i++){
                book addbook=donation(i+1);
                library.push_back(addbook);
                cout<<"\n";
            }
        }
        else if (key=="2"){
            cout<<"Whose books do you want to see: \n";
            cin>>prefauthor;
            cout<<"\n";
            for (int i=0; i<library.size(); i++){
                cout<<"Book "<<i+1<<": \n";
                if (library[i].getauthor()==prefauthor){
                    library[i].show();
                }
            }
            system("pause");
        }
        else if (key=="3"){
            cout<<"How many pages are too many for you: \n";
            cin>>prefpages;
            cout<<"\n";
            for (int i=0; i<library.size(); i++){
                cout<<"Book "<<i+1<<": \n";
                if (library[i].getpages()<=prefpages){
                    library[i].show();
                }
            }
            system("pause");
        }
        else if (key=="4"){
            cout<<"Whose books do you want to see: \n";
            cin>>prefyear;
            cout<<"\n";
            for (int i=0; i<library.size(); i++){
                cout<<"Book "<<i+1<<": \n";
                if (library[i].getyear()>prefyear){
                    library[i].show();
                }
            }
            system("pause");
        }
        else if (key=="5"){
            break;
        }
        else{
            cout<<"kill yourself \n";
            system("pause");
        }
    }
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.05.2025, 21:35
Ответы с готовыми решениями:

Ошибка компиляции при попытке записать строку в файл
Всем привет!Мне нужно записать в файл c помощью объекта вот таким образом fout &lt;&lt; &quot;@echo off...

Удаляется .exe файл
Здравствуйте, у возникла проблема с программой в плане того что после закрытия программы .exe файл...

Не удаляется аварийно завершенный exe файл
Здравствуйте, подскажите пожалуйста, почему не удаляется ехе файл, если он завершился аварийно....

37
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6199 / 2900 / 1043
Регистрация: 01.06.2021
Сообщений: 10,657
18.05.2025, 21:46
Добавь всю папку в исключения
0
Злостный нарушитель
 Аватар для Verevkin
10339 / 5757 / 1269
Регистрация: 12.03.2015
Сообщений: 26,580
18.05.2025, 21:48
Нергосеть код писала, да?
У меня он отлично компилится в ехе и стартует.
Пруфы вот:

Вложения
Тип файла: 7z xxx.7z (164.2 Кб, 3 просмотров)
1
0 / 0 / 0
Регистрация: 18.05.2025
Сообщений: 7
18.05.2025, 22:38  [ТС]
По поводу нейросети я оскорблен, по поводу добавления папки в исключения я антивирус вообще снес нахрен, изменений ноль
0
Злостный нарушитель
 Аватар для Verevkin
10339 / 5757 / 1269
Регистрация: 12.03.2015
Сообщений: 26,580
18.05.2025, 22:43
Цитата Сообщение от Драгонхартед Посмотреть сообщение
По поводу нейросети я оскорблен
Нам-то не гони! Оскорблён он...
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
18.05.2025, 22:45
Цитата Сообщение от Драгонхартед Посмотреть сообщение
я антивирус вообще снес нахрен
А как же Защитник Windows?
0
0 / 0 / 0
Регистрация: 18.05.2025
Сообщений: 7
18.05.2025, 22:48  [ТС]
Я этому рад, но вот у меня он так не делает. А еще мне очень интересно, что в моем коде нейросетевого?

Добавлено через 44 секунды
сморозил фигню в последнем сообщении, думал, ответы на ответы тут выделяются. По поводу защитника его я тоже отключил
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
18.05.2025, 22:51
Цитата Сообщение от Royal_X Посмотреть сообщение
Добавь всю папку в исключения
Перед тем как это делать, нужно всё же получить "зараженный" файл и проверить его на VirusTotal.
Не исключена вероятность вмешательства вредоносного ПО в процессе компиляции. На каком то этапе.
Слепое добавление всего в исключение - открыть двери перед злоумышленниками.

Добавлено через 3 минуты
Цитата Сообщение от Драгонхартед Посмотреть сообщение
удаляется ехе файл
Как вы это определили?
0
0 / 0 / 0
Регистрация: 18.05.2025
Сообщений: 7
18.05.2025, 22:53  [ТС]
Цитата Сообщение от SmallEvil Посмотреть сообщение
Как вы это определили?
у меня слева открыт список файлов в папке, в которой находится программа. в момент запуска имя файла перечеркивается и он исчезает, что обычно происходит при удалении
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
18.05.2025, 23:30
Цитата Сообщение от Драгонхартед Посмотреть сообщение
программа. в момент запуска имя файла перечеркивается и он исчезает
Ну так добавьте в исключение папку, но не запускайте приложение, а отправьте на анализ.
Убедитесь что это ложное срабатывание и пользуйтесь на здоровье.
0
0 / 0 / 0
Регистрация: 18.05.2025
Сообщений: 7
18.05.2025, 23:45  [ТС]
Цитата Сообщение от SmallEvil Посмотреть сообщение
Ну так добавьте в исключение папку, но не запускайте приложение, а отправьте на анализ.
я вам еще раз скажу, проблема не в антивирусе.
в любом случае, я нашел, где посмотреть журнал событий, и прикол был вот в чем:

Code
1
2
3
4
5
6
7
8
9
10
main.cpp
main.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: __cdecl book::book(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,int,int)" (??0book@@QEAA@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@00HH@Z) в функции "class book __cdecl donation(int)" (?donation@@YA?AVbook@@H@Z).
main.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: __cdecl book::book(class book const &)" (??0book@@QEAA@AEBV0@@Z) в функции "class book __cdecl donation(int)" (?donation@@YA?AVbook@@H@Z).
main.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: __cdecl book::~book(void)" (??1book@@QEAA@XZ) в функции "class book __cdecl donation(int)" (?donation@@YA?AVbook@@H@Z).
main.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl book::getauthor(void)" (?getauthor@book@@QEAA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ) в функции main.
main.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl book::gettitle(void)" (?gettitle@book@@QEAA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ) в функции main.
main.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: int __cdecl book::getyear(void)" (?getyear@book@@QEAAHXZ) в функции main.
main.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: int __cdecl book::getpages(void)" (?getpages@book@@QEAAHXZ) в функции main.
main.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: void __cdecl book::show(void)" (?show@book@@QEAAXXZ) в функции main.
C:\Users\under\Desktop\projects\c++\kursach\main.exe : fatal error LNK1120: неразрешенных внешних элементов: 8
из того, что я понял, это ошибка компоновщика и я не вижу, чтобы какая-либо причина, указанная в интернете, соответствовала моему случаю. что делать я не знаю

Добавлено через 7 минут
Цитата Сообщение от SmallEvil Посмотреть сообщение
но не запускайте приложение, а отправьте на анализ.
и вообще его я написал, зачем мне его на анализ отправлять
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
19.05.2025, 00:04
Цитата Сообщение от Драгонхартед Посмотреть сообщение
и вообще его я написал, зачем мне его на анализ отправлять
Действительно, я его написал, я его скопировал, я его от друга принес, зачем мне что то где то проверять.

Так судя по всему у вас файл даже не создался.
Как его мог кто то удалить?

Рассказываете тут сказки.
0
 Аватар для Pphantom
2287 / 1546 / 718
Регистрация: 17.03.2022
Сообщений: 4,971
19.05.2025, 00:06
А я, кажется, понял, что ТС называет "удалением exe-файла".

Он компилирует и собирает программу в какой-то среде, параллельно смотря на файлы в "проводнике" или как оно там сейчас называется. В процессе сборки выясняется, что она произошла с ошибками, поэтому созданная к этому моменту "заготовка" исполнимого файла ликвидируется. Никакого фактического запуска программы при этом не происходит, соответственно, всевозможные антивирусы и т.п. тут совершенно не при чем.
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
19.05.2025, 00:08
Цитата Сообщение от Pphantom Посмотреть сообщение
собирает программу в какой-то среде
Где бы он её не собирал, он не подключил второй cpp файл.
0
0 / 0 / 0
Регистрация: 18.05.2025
Сообщений: 7
19.05.2025, 00:21  [ТС]
Цитата Сообщение от Pphantom Посмотреть сообщение
А я, кажется, понял, что ТС называет "удалением exe-файла"
прошу простить мою техническую неграмотность, я студент первокурсник в относительно посредственном вузе и таких тонкостей нам не преподавали.

Добавлено через 1 минуту
Цитата Сообщение от SmallEvil Посмотреть сообщение
он не подключил второй cpp файл.
я в моменте так же подумал, и, либо я не знаю, как подключать cpp файлы, либо проблема не в этом, поскольку на строку #include "book.cpp" компилятор ругается. К тому же, в начале было сказано, что онлайн компиляторы со своей задачей справляются
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
19.05.2025, 01:42
Опишите как вы компилируете.
Какой компилятор/IDE(среда разработки)?

Добавлено через 1 минуту
Цитата Сообщение от Драгонхартед Посмотреть сообщение
онлайн компиляторы со своей задачей справляются
Онлайн сервисы сами формируют команду для компилятора, компилируют все *.cpp файлы и включают их в компоновку.
Вы этого не сделали.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6199 / 2900 / 1043
Регистрация: 01.06.2021
Сообщений: 10,657
19.05.2025, 01:47
SmallEvil, судя по ошибкам, у ТС Visual Studio...
0
0 / 0 / 0
Регистрация: 18.05.2025
Сообщений: 7
19.05.2025, 03:02  [ТС]
Цитата Сообщение от SmallEvil Посмотреть сообщение
Какой компилятор/IDE(среда разработки)?
вс код. как я нашел в инете, мне нужно создать файл конфигурации запуска?

Добавлено через 25 минут
я идиот, не разобрался в теме, прошу у всех прощения за потраченное время. нужно было прописывать команду компилятору
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,532
Записей в блоге: 1
19.05.2025, 13:16
Драгонхартед,
Цитата Сообщение от Драгонхартед Посмотреть сообщение
я студент первокурсник в относительно посредственном вузе и таких тонкостей нам не преподавали.
даже в хороших вузах это не то чтобы явно преподают. Обучение деталям обращения со средой разработки - это не ВУЗовский предмет, этому все учатся самостоятельно. И вообще большая часть учёбы студента должна быть самообразованием.

Добавлено через 1 минуту
Цитата Сообщение от Драгонхартед Посмотреть сообщение
из того, что я понял, это ошибка компоновщика и я не вижу, чтобы какая-либо причина, указанная в интернете, соответствовала моему случаю. что делать я не знаю
ну как минимум, не считать, что кто-то удаляет экзе-файл, не вводить нас в заблуждение. В программе ошибка - надо её исправлять.
0
 Аватар для Pphantom
2287 / 1546 / 718
Регистрация: 17.03.2022
Сообщений: 4,971
19.05.2025, 13:42
Цитата Сообщение от Драгонхартед Посмотреть сообщение
прошу простить мою техническую неграмотность, я студент первокурсник в относительно посредственном вузе и таких тонкостей нам не преподавали.
Как уже выше написал Kuzia domovenok, тут особо нечего преподавать, нужные познания вырабатываются сами. Единственное, что стоило бы сделать - попробовать какое-то время поработать без IDE, чтобы стало понятнее, как все это устроено.

Тут, судя по всему, вы просто забыли добавить в "проект" или что-то подобное book.cpp, проблема даже не в ошибке в программе, а в том, что линкуется в итоге один модуль вместо двух.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.05.2025, 13:42
Помогаю со студенческими работами здесь

При попытке компиляции на ноутбуке вылезает данная ошибка. Что это?
Вот текст ошибки. Причем на чужом ноуте компилилось нормально, здесь вдруг траблы какие-то. С...

Ошибка при попытке компиляции и последующего запуска программы
Доброго времени суток! Недавно появился один глюк, который очень сильно напрягает и который я уже...

Ошибки компиляции при попытке использования boost::filesystem
Имею простейший пример : #include &lt;boost/filesystem.hpp&gt; #include...

Ошибка при попытке компиляции стороннего проекта
В общем это мой первый опыт работы с либами от сторонних пользователей, а так как это C++, тут все...

Ошибка при попытке компиляции через GCC
https://www.cyberforum.ru/attachment.php?attachmentid=1481175&amp;stc=1&amp;d=1723539913 вот что пишет...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru