Я использую библиотеку CImg впервые и получаю ошибки компиляции с простой тестовой программой, которая включает только CImg.h. Почему это? Как я могу это исправить?
Код программы:
#include "../headers/CImg.h"
using namespace cimg_library;
int main()
{
return 0;
}
Ошибки компиляции:
In function 'FILE* cimg_library::cimg::fopen(const char*, const char*)':
5065|error: '_fileno' was not declared in this scope
In function 'int cimg_library::cimg::fseek(FILE*, INT_PTR, int)':
5093|error: '_fseeki64' was not declared in this scope
In function 'INT_PTR cimg_library::cimg::ftell(FILE*)':
5102|error: '_ftelli64' was not declared in this scope
Это было сделано на ПК с 64-битной Windows 8.1.
Команда:
g++.exe -Wall -fexceptions -g -std=c++11 -c "D:\informatics\Projects\image experiments\Rectangle to circle stretcher\sources\main.cpp" -o obj\Debug\sources\main.o
Я пробовал это без части -std=c++11
, и я получаю 2 ошибки вместо 3. Я не получаю 5065|error: '_fileno' was not declared in this scope
. То же самое произойдет, если я заменю его на -std=gnu++11
Я также попробовал это на своем ноутбуке, на котором установлена 64-битная версия Windows 7, и там происходит то же самое.
Пока у меня есть обходной путь для первой ошибки, но ничего для двух других.
#include <stdio.h>
в качестве первой строки. - person Mark Setchell   schedule 15.07.2016#include <cstdio>
в качестве первой строки. Попробуйте добавить некоторые или все из них в команду компиляции-Dcimg_display=0
в начале и/или-lgdi32
в конце. - person Mark Setchell   schedule 15.07.2016g++
, но вам, вероятно, нужно сообщить компилятору, где находятся заголовочные файлы (т.е. включаемые файлы). Вероятно, вам нужно добавить-I /path/to/includes
и-L /path/to/libs
в команду компиляции, чтобы она могла найти заголовочные файлы - не только CImg, но и системные стандартные заголовочные файлы C++. - person Mark Setchell   schedule 15.07.2016-std=c++11
на-std=gnu++11
- person Mark Setchell   schedule 16.07.2016g++
, а теперь говорите, что используете Code::Blocks. Можете ли вы попробовать командуg++
, которую, как вы сказали, использовали только в командной строке вне Code::Blocks, чтобы мы могли исключить любые эффекты Code::Blocks? Кроме того, с-std=gnu++11
. - person Mark Setchell   schedule 17.07.2016cstdio
. - person Mark Setchell   schedule 18.07.2016