Командная строка Windows C++ C1083 "Не удается открыть включаемый файл:" Magick++. H "Нет такого файла или каталога"
Прошло более 4 часов с тех пор, как я вообще что-то сделал, искал документацию и ссылки, и, честно говоря, у меня нет идей. Так что здесь идет.
Фон
- Я компилирую программу C++ в командной строке
- Я новичок в командной строке и довольно плохо знаком с C++
- Я пишу эту программу в Notepad++ (не VS), но VS установлен, поэтому я могу скомпилировать
- Я пытаюсь использовать ImageMagick через Magick ++, C++ API-оболочку для него.
- Главный каталог программ
- C:/Program Files (x86)/CameraSoftware/myCameraProgram.cpp
- Каталог магии ++
- C:/Program Files (x86)/ImageSoftware/Magick++/lib/Magick.h
вопросы
- Я пытаюсь использовать Magick++ API и поэтому хочу включить его
- Я просто использую это в файле.cpp
#include <Magick++.h>
- Я возился с многочисленными решениями, которые работали на других, но безрезультатно
- фатальная ошибка C1083: не удается открыть включаемый файл: 'Magick++.h': такого файла или каталога нет
проблема
- Как правильно скомпилировать и связать "Magick++. H" правильно через командную строку?
- В настоящее время он составлен как таковой
- cl myCameraProgram.cpp /EHsc /link DSLRRemoteLib.lib
- DSLRRemoteLib - это файл lib, расположенный в том же каталоге, и для его работы требуются /EHsc и /link
Другие решения
- Я полагаю, что для проектов Visual Studio вы можете добавить внешние пути каталогов к проекту, поэкспериментировав с конфигурациями, но у меня нет такой роскоши при использовании notepad ++, поэтому мне действительно нужно знать, как правильно скомпилировать
- Я пробовал жесткое кодирование в myCameraProgram.cpp #include "COMPLETE_DIR_PATH/Magick++. H", и он скомпилируется, но Magick ++. H содержит больше включений в него (например,
#include <Magick++/Include.h>
), и это вызовет ошибку C1083 для каждого из заголовочных файлов.- Я также пытался жестко кодировать пути к файлам в Magick ++. H и те же проблемы с заголовочными файлами следующего уровня. Так что это не решение проблемы.
- Я также попытался добавить дополнительный аргумент для /link файла в строке компиляции
cl myCameraProgram.cpp /EHsc /link DSLRRemote "COMPLETE_DIR_PATH/Magick++.h"
но не работает- Также попробовал
cl myCameraProgram.cpp /EHsc /link DSLRRemote /l "COMPLETE_DIR_PATH/Magick++.h"
- Наряду с несколькими неудачными попытками.
Любая помощь или совет или направление будут высоко оценены, спасибо!
======== РЕДАКТИРОВАТЬ ========
Спасибо за советы всем.
- Используя /I "C:\Users\ME\Documents\ImageMagick-6.8.1-10\Magick++\lib", я мог бы успешно связать #include "Magick++. H", но он больше нигде не ищет другие файлы.
- Он не может найти #include, которое находится в пути к подкаталогу "C:\Users\ME\Documents\ImageMagick-6.8.1-10\Magick++\lib\MagiC++ \ Include.h".
- "Magick ++ / Include.h" также ссылается на другой подкаталог в родительском каталоге.
Прогресс
- Моя текущая строка компиляции командной строки:
- cl "C: \ Users \ ME \ Documents \ ImageMagick-6.8.1-10 \ Magick ++ \ lib"
- Находит "Магию ++. Ч"
вопрос
- "Magick++. H" - это заголовочный файл, который включает 4 заголовка
- После компиляции он не может найти другие файлы, которые находятся в подкаталоге
- Есть ли способ связать ВСЕ подкаталоги и файлы по пути
- "C:\Users\ME\Documents\ImageMagick-6.8.1-10" в компиляции случайно?
1 ответ
Решение
sudo apt-get install libmagickwand-dev imagemagick
sudo apt-get install libmagick++-dev libmagick++4