7

自从我取得任何进展以来已经超过 4 小时,并且搜索了文档和链接,坦率地说我没有想法。所以这里。

背景

  • 我正在命令提示符下编译 C++ 程序
  • 我是命令提示符的新手,对 C++ 还很陌生
  • 我正在用 Notepad++(不是 VS)编写这个程序,但是安装了 VS,所以我可以编译
  • 我正在尝试通过 Magick++ 来使用 ImageMagick,Magick++ 是一个 C++ API 包装器。
  • 主程序目录
    • C:/程序文件 (x86)/CameraSoftware/myCameraProgram.cpp
  • Magick++ 目录
    • C:/程序文件 (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",但它不会在其他任何地方查找其他文件。
  • 它找不到在子目录路径“C:\Users\ME\Documents\ImageMagick-6.8.1-10\Magick++\lib\Magic++\Include.h”中的#include。
  • “Magick++/Include.h”还引用了父目录中的另一个子目录。

进步

  • 我当前的命令提示符编译行是:
  • cl "C:\Users\ME\Documents\ImageMagick-6.8.1-10\Magick++\lib"
  • 找到“Magick++.h”

问题

  • “Magick++.h”是一个包含 4 个头文件的头文件
  • 编译时找不到子目录中的其他文件
  • 有没有办法链接路径下的所有子目录和文件
  • “C:\Users\ME\Documents\ImageMagick-6.8.1-10”有机会编译吗?
4

1 回答 1

-4
sudo apt-get install libmagickwand-dev imagemagick
sudo apt-get install libmagick++-dev libmagick++4
于 2013-08-15T23:30:44.840 回答