Форум программистов, компьютерный форум CyberForum.ru

warning при использовании переменной из подключаемого файла - C++

Восстановить пароль Регистрация
 
Humanoid
Почетный модератор
 Аватар для Humanoid
9697 / 3747 / 140
Регистрация: 12.06.2008
Сообщений: 11,302
24.01.2012, 10:59     warning при использовании переменной из подключаемого файла #1
При работе с библиотекой slang я подключаю файл slang.h
Мне нужно получить значение двух переменных SLtt_Screen_Rows и SLtt_Screen_Cols... вроде бы всё работает нормально, но при компиляции появляется предупреждение:
c:/qtsdk/mingw/bin/../lib/gcc/mingw32/4.4.0/../../../../mingw32/bin/ld.exe: warning: auto-importing has been activated without --enable-auto-import specified on the command line.
This should work unless it involves constant data structures referencing symbols from auto-imported DLLs.
Это происходит только когда есть обращение к этим переменным. В принципе, меня всё страивает (т.к. всё работает нормально), но хотелось бы понять причину предупреждения и как от него избавиться.

В файле slang.h эти переменные объявлены как:
C++
1
2
SL_EXTERN int SLtt_Screen_Rows;
SL_EXTERN int SLtt_Screen_Cols;
SL_EXTERN объявлен ранее как
C++
1
# define SL_EXTERN extern SL_IMPORT
В свою очередь SL_IMPORT объявлен как просто
C++
1
# define SL_IMPORT
Т.е., на сколько я понимаю, переменные можно считать как
C++
1
2
extern int SLtt_Screen_Rows;
extern int SLtt_Screen_Cols;
Компилятор mingw32.
Подскажите, в каком направлении копать.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.01.2012, 10:59     warning при использовании переменной из подключаемого файла
Посмотрите здесь:

C++ При использовании оператора GOTO зацикливается программа при введении букв.
C++ ошибка повторения имен переменных при использовании глобальной переменной
Warning при компиляции при чтении из msado15.dll C++
C++ Access violation при использовании файла в lib библиотеке
Получить доступ к переменной класса при наличии такого же имени переменной в функции C++
Warning C4627: #include <windows.h>: пропущен при поиске C++
При использовании getline ввод при Enter заканчивается только после пробела C++
C++ Ошибка при использовании %

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
24.01.2012, 11:07     warning при использовании переменной из подключаемого файла #2
The standard Windows dll format supports data imports from dlls only by adding special decorations (dllimport/dllexport), which let the compiler produce specific assembler instructions to deal with this issue. This increases the effort necessary to port existing Un*x code to these platforms, especially for large c++ libraries and applications. The auto-import feature, which was initially provided by Paul Sokolovsky, allows one to omit the decorations to archieve a behavior that conforms to that on POSIX/Un*x platforms. This feature is enabled with the --enable-auto-import command-line option, although it is enabled by default on cygwin/mingw. The --enable-auto-import option itself now serves mainly to suppress any warnings that are ordinarily emitted when linked objects trigger the feature's use.
auto-import of variables does not always work flawlessly without additional assistance. Sometimes, you will see this message

"variable '<var>' can't be auto-imported. Please read the documentation for ld's --enable-auto-import for details."

The --enable-auto-import documentation explains why this error occurs, and several methods that can be used to overcome this difficulty.
http://sourceware.org/binutils/docs-2.16/ld/WIN32.html
Humanoid
Почетный модератор
 Аватар для Humanoid
9697 / 3747 / 140
Регистрация: 12.06.2008
Сообщений: 11,302
24.01.2012, 11:56  [ТС]     warning при использовании переменной из подключаемого файла #3
Надеялся, что можно программным путём это сделать. Ну да ладно... добавил в файл проекта Qt строку
Код
QMAKE_LFLAGS += -enable-auto-import
и теперь он использует этот параметр. Спасибо.
Yandex
Объявления
24.01.2012, 11:56     warning при использовании переменной из подключаемого файла
Ответ Создать тему
Опции темы

Текущее время: 23:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru