自从我取得任何进展以来已经超过 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”有机会编译吗?