@sddvxd

Почему возникает ошибка линковки в данном случае?

Добрый день!

Приходится компилировать свой проект из командной строки с помощью g++

g++ main.cpp  -lglfw3 -lgdi32 -lopengl32 -lglew32 -lopengl32


Эта команда успешно выполняется. Но в той IDE , где я пытаюсь его собрать (QtCreator) вылезает следующая ошибка:
'memset' was not declared in this scope
 inline void PropVariantInit (PROPVARIANT *pvar) { memset (pvar, 0, sizeof (PROPVARIANT)); }


причем файл qmake настроен подобным образом:

TARGET = learning
TEMPLATE = app

DEFINES += QT_DEPRECATED_WARNINGS

CONFIG += c++11

LIBS += -lglfw3 -lgdi32 -lopengl32 -lglew32 -lopengl32

SOURCES += \
        main.cpp


Аналогичным образом указаны бинарные файлы библиотек, но линковщик не находит функцию выше при попытке собрать проект в IDE. Подскажите пожалуйста, почему так может быть
  • Вопрос задан
  • 76 просмотров
Пригласить эксперта
Ответы на вопрос 2
jcmvbkbc
@jcmvbkbc
http://dilbert.com/strip/1998-08-24
Почему возникает ошибка линковки в данном случае?
'memset' was not declared in this scope

Это ошибка компиляции, а не линковки. Потому что не хватает #include <cstring>
Ответ написан
vt4a2h
@vt4a2h
Senior software engineer (C++/Qt/boost)
Посмотрите, какой Makefile генерирует qmake. Там могут быть добавлены лишние пути или флаги из spec файла.
Проверьте, используется ли реально при компиляции и линковке g++, а не, скажем gcc (это можно посмотреть в окне Compile output).
Проверьте, включён ли файл cstring везде, где это нужно.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
Acme Crypto Corp Нижний Новгород
от 110 000 до 190 000 руб.
Группа Компаний «А.Н.Т.» Санкт-Петербург
от 230 000 до 300 000 руб.
ZAVOD Games Москва
До 70 000 руб.
22 янв. 2019, в 17:47
300 руб./за проект
22 янв. 2019, в 17:36
600 руб./за проект
22 янв. 2019, в 17:30
100 руб./за 1000 зн.