我用C ++开发了一个工具,使用Visual Studio 2010,我也想在Linux系统上部署它。 代码本身完全是平台无关的,只使用STL和标准库。
现在我的问题是:我没有Linux的经验。
不过,我曾尝试使用GCC编写其他一些程序来编译,结果导致了大量的错误,我花了3个小时才解决 – 恐怖!
从这个经验中注意到,如果我尝试将我目前的项目移植到GCC,我认为也会发生同样的情况,更糟的是,
切换到Linux的Windows开发,坏主意?
如何检测桌面应用程序是否被修改?
如何使Windows意识到我用Python编写的服务?
在Linux和Windows下的emacs webdev的固体configuration?
我的问题是:
Visual Studio用户需要知道什么才能成功地在Linux上运行他们的程序? (我需要学习吗?)
你知道一个很好的源代码,它不是涵盖整个GCC / Linux编程的主题,而是从Visual Studio环境切换的问题。
哪个适合linux? GNU make vs cmake vs codeblocks vs qmake
为什么arm-linux-gnueabi-g ++-4.4总是build立一个“7-A”二进制文件?
在Linux上的C#中寻找一个目录的可用空间
在Windows中以编程方式创buildshell脚本并通过cygwin在Linux系统上运行它?
如何使用C ++在Windows和Linux中清除控制台
我建议完全跳过,它是一个相当古老的技术,您可能会在使用时遇到可移植性问题。 相反,学习另一个构建系统,如CMake http://www.cmake.org/或SCons http://www.scons.org/
我使用CMake自己,发现它是优秀的。 你编写非常简单的构建脚本(你可以在一两个小时内轻松开始),它会为你生成makefile。 最大的优点是它可以为几乎所有的编译器生成makefile,或者生成你想要的系统。 它可以生成标准的unix makefiles,Microsoft Visual C ++项目,XCode项目,Code :: Blocks项目,甚至KDevelop和Eclipse CDT4项目。
我自己并没有使用SCons,但是我确实知道它实际上是为你构建你的程序并运行在python上的。
在Linux / Unix入门可以真正意义上的任何你想要的。 从Visual Studio开始可能意味着去Eclipse或其他IDE,就像学习新的IDE一样简单,或者它可能意味着直接到shell,忘记你知道IDE是什么样子。 我个人的建议是坚持IDE- Eclipse是一个非常好的行业标准和非常跨平台的(只是得到CDT插件)。
关于GCC的话题,如果你正在编写CMake脚本,你可能不会真的自己调用它,因为CMake会生成makefile。 最简单的命令行参数是:
g++ <source-files> -o <output-name> -I <another include directory> -l <library to link to>
举个例子:
g++ helloworld.cpp -o world.out -I /usr/include -l mylib
要从shell运行一个可执行文件,导航到它的in目录并键入:
./world.out
请注意,调用g ++(即g++ helloworld.cpp )时的默认输出是a.out 。
这就是你真正需要知道的! 其余的很容易。 你会学会喜欢Unix,而且我真的推荐学习shell,即使你走的是IDE的路径。 它可以让你的生活变得更加简单。
编辑:所以要将您的程序移植到Linux和GCC与CMake,这是你会做什么:
得到CMake
将CMakeLists.txt文件写入您的源代码目录(CMake使用的Makefile格式)
在目录上调用CMake。 CMake会自动解析CMakeLists.txt文件并生成您选择的构建脚本
建立你使用的任何构建系统。 如果您使用的是标准的Unix Makefiles,那么只需导航到build目录,然后在shell中输入make
你的项目将建成,你完成了!
PS:我从来没有学过正常的make ,虽然它绝对有它的用处。 CMake在我身上发现了一个渴望的用户。
我打算说“man g ++”,但是手册很长。
只需键入
g++ main.cpp utility.cpp
g ++会自动编译并将main.cpp,utility.cpp链接到一个名为a.out的文件中,类型为./a.out到命令行中运行编译后的代码。
你不需要学习make,但是如果你这样做的话,简单的make脚本只需要4-5行代码。 输入起来非常简单,但是对于Visual Studio用户来说实际上是非常不同的,所以如果把错误的代码放在Makefile文件中,那么这是非常不友好的。
关于学习linux,有很多东西需要学习。 我甚至不能告诉你从哪里开始,但是没有任何秘密。 不像微软的产品,你必须学习解决方法,使您的代码运行。
哦,这里是g ++的信息: http : //homepages.gac.edu/~mc38/2001J/documentation/g++.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。