Вопрос задан 11.10.2026 в 06:12.
Предмет Информатика.
Спрашивает Мирошник Алексей.
Выдает ошибки LNK2019 и LNK1120 в Visual Studio при подключении статической библиотеки. Сборка статической библиотеки правильная. Вставила файлы Library.lib и Library.h в папку libs. Ошибки красным не подчеркиваются. Код на C++.
main.cpp
#include
#include
#include "..\libs\Library.h"
using namespace std;
int main() {
setlocale(0, "");
int count;
cout << "Введите количество работников: ";
cin >> count;
Rabotnik* rabotnik = new Rabotnik[count];
Zap3(rabotnik, count);
int arifm = FindSrZarp(rabotnik, count);
string famil = Famil(rabotnik, count);
cout << endl;
cout << "Средняя зарплата: " << arifm << endl;
cout << "Фамилии людей с зарплатой выше среднего: " << famil << endl;
delete[] rabotnik;
return 0;
}
Library.h
#pragma once
#include
using namespace std;
struct Rabotnik {
string fio;
string data;
int zarplata;
};
Rabotnik* Zap3(Rabotnik* rabotnik, int count);
int FindSrZarp(Rabotnik* rabotnik, int count);
string Famil(Rabotnik* rabotnik, int count);
void UpFirstLetter(string& str);
Library.cpp
#include
#include "Library.h"
using namespace std;
Rabotnik* Zap3(Rabotnik* rabotnik, int count) {
for (int i = 0; i < count; i++) {
cout << "Введите фио работника " << i + 1 << ": ";
cin.ignore();
getline(cin, rabotnik[i].fio);
cout << "Введите дату рождения работника " << i + 1 << ": ";
cin >> rabotnik[i].data;
cout << "Введите зарплату работника " << i + 1 << ": ";
cin >> rabotnik[i].zarplata;
}
return rabotnik;
}
int FindSrZarp(Rabotnik* rabotnik, int count) {
int sum = 0;
for (int i = 0; i < count; i++) {
sum += rabotnik[i].zarplata;
}
int arifm = sum / count;
return arifm;
}
void UpFirstLetter(string& str) {
if (islower(str[0])) {
str[0] = toupper(str[0]);
}
}
string Famil(Rabotnik* rabotnik, int count) {
string result;
int arifm = FindSrZarp(rabotnik, count);
for (int i = 0; i < count; i++) {
if (rabotnik[i].zarplata > arifm) {
result += rabotnik[i].fio.substr(0, rabotnik[i].fio.find(' ')) + "\n";
UpFirstLetter(result);
}
}
return result;
}
#include
#include "..\libs\Library.h"
using namespace std;
int main() {
setlocale(0, "");
int count;
cout << "Введите количество работников: ";
cin >> count;
Rabotnik* rabotnik = new Rabotnik[count];
Zap3(rabotnik, count);
int arifm = FindSrZarp(rabotnik, count);
string famil = Famil(rabotnik, count);
cout << endl;
cout << "Средняя зарплата: " << arifm << endl;
cout << "Фамилии людей с зарплатой выше среднего: " << famil << endl;
delete[] rabotnik;
return 0;
}
Library.h
#pragma once
#include
using namespace std;
struct Rabotnik {
string fio;
string data;
int zarplata;
};
Rabotnik* Zap3(Rabotnik* rabotnik, int count);
int FindSrZarp(Rabotnik* rabotnik, int count);
string Famil(Rabotnik* rabotnik, int count);
void UpFirstLetter(string& str);
Library.cpp
#include
#include "Library.h"
using namespace std;
Rabotnik* Zap3(Rabotnik* rabotnik, int count) {
for (int i = 0; i < count; i++) {
cout << "Введите фио работника " << i + 1 << ": ";
cin.ignore();
getline(cin, rabotnik[i].fio);
cout << "Введите дату рождения работника " << i + 1 << ": ";
cin >> rabotnik[i].data;
cout << "Введите зарплату работника " << i + 1 << ": ";
cin >> rabotnik[i].zarplata;
}
return rabotnik;
}
int FindSrZarp(Rabotnik* rabotnik, int count) {
int sum = 0;
for (int i = 0; i < count; i++) {
sum += rabotnik[i].zarplata;
}
int arifm = sum / count;
return arifm;
}
void UpFirstLetter(string& str) {
if (islower(str[0])) {
str[0] = toupper(str[0]);
}
}
string Famil(Rabotnik* rabotnik, int count) {
string result;
int arifm = FindSrZarp(rabotnik, count);
for (int i = 0; i < count; i++) {
if (rabotnik[i].zarplata > arifm) {
result += rabotnik[i].fio.substr(0, rabotnik[i].fio.find(' ')) + "\n";
UpFirstLetter(result);
}
}
return result;
}
Ответы на вопрос
Отвечает Рахматуллин Никита.
Ошибки LNK2019 и LNK1120 — это ошибки компоновщика. Они обычно означают: заголовочный файл Library.h найден, но готовый код функций из Library.lib не подключился к проекту.
Просто положить Library.lib и Library.h в папку libs недостаточно. Нужно подключить библиотеку в настройках Visual Studio:
- Открой свойства проекта.
- Выбери нужную конфигурацию: Debug или Release.
- Выбери нужную платформу: x86 или x64. Она должна совпадать с платформой, под которую собрана Library.lib.
- Перейди: Компоновщик → Общие → Дополнительные каталоги библиотек.
- Добавь путь к папке libs.
- Перейди: Компоновщик → Ввод → Дополнительные зависимости.
- Добавь имя файла: Library.lib.
Ещё проверь, что функции Zap3, FindSrZarp, Famil действительно реализованы в этой библиотеке, а не только объявлены в заголовке.
В самом фрагменте кода также есть ошибка ввода: для чтения числа должно быть не cout > count, а cin >> count. Но это уже не причина LNK2019, а отдельная ошибка в коде.
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili

