【发布时间】:2015-06-29 01:42:51
【问题描述】:
我尝试尽可能地搜索这样的问题,但我根本不知道如何准确地提出这个问题。如果之前已经回答过这个问题,或者这是一个微不足道的问题,我深表歉意。我是 C++ 的大(而且非常吓人!)世界的新手。未来我会尽力而为。
让我试着解释一下我的意思:
我在 Linux Ubuntu 14.04 上。在 Ubuntu 上,要编译我编写的 C++ 程序,例如,假设某个文件 myProgram.cpp,我 cd 到其目录并在终端中键入以下内容:
g++ myProgram.cpp -o myProgram
这样,我就可以输入:
./myProgram
运行我的程序。这既简单又令人满意——我从阅读 C++ Primer 中学到了这一点。在发现自己用 C++ 编写代码很舒服之后,我决定继续给自己一个项目,其中涉及使用 Image Magick,特别是它的 C++ API:Magick++。但是,现在,如果我想编译一些东西,我必须输入这个丑陋的烂摊子:
g++ `Magick++-config --cxxflags --cppflags` -o testMagick testMagick.cpp `Magick++-config --ldflags --libs`
让我的代码编译和执行。这看起来很混乱,当我试图查看 CImg 是否更好时,结果发现它需要自己的一组参数,如 -lm、-lpthread 和 -lX11。事实证明,要使用 C++11 编译,我必须编写 -std=c++0x。所以我的问题是:
有没有办法在终端中简化/清理我的编译语句,或者当我使用不同的 API 编译不同类型的程序时,我是否必须找出并使用一组特定的参数?
【问题讨论】:
-
研究“makefiles”,也许是“cmake”,甚至是“C++ IDE linux”
-
paddy,下面对 make 文件提出了相同的建议。我会调查他们作为我的下一步!谢谢!
-
您可能想要查看“构建”工具,例如“CMake”(cmake.org)或“Ninja”(martine.github.io/ninja)或“Scons”(scons.org)。特别是 CMake 可以为您生成 Makefile,或者它可以为 IDE 生成项目文件,它使跨平台开发变得更加容易。
标签: c++ linux c++11 compilation magick++