Bil*_* G. 15 c++ linux gcc cross-platform visual-studio
我使用Visual Studio 2010开发了一个C++工具,我也希望在Linux系统上部署它.代码本身完全独立于平台编程,仅使用STL和标准库.
现在我的问题是:我没有Linux的经验.
但是,我试图得到一些我用GCC编写的其他程序,结果是一大堆错误被扔给我,这花了我3个小时来解决 - 恐怖!
从这次经历中我注意到,如果我尝试将当前项目移植到GCC,那么即将发生同样的事情,情况会更糟.
我的问题是:
Visual Studio用户需要知道什么才能成功地在Linux上运行程序?(我需要学习make吗?)
你知道一个很好的资源,它不是整个GCC/Linux编程的主题,而是特别是从Visual Studio环境切换的问题吗?
Pri*_*ime 10
我建议make完全跳过它,这是一项相当古老的技术,使用它时可能会遇到可移植性问题.相反,学习另一个构建系统,如CMake http://www.cmake.org/或SCons http://www.scons.org/
我自己使用CMake并发现它非常棒.您编写非常简单的构建脚本(您可以在一两个小时内轻松开始)并为您生成makefile.最大的优点是它可以为几乎所有你想要的编译器或构建系统生成makefile.它可以生成标准的unix makefile,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运行可执行文件,请导航到其中的目录并键入:
./world.out
请注意,调用g ++(即g++ helloworld.cpp)时的默认输出是a.out.
这就是你真正需要知道的!其余的很容易.你会学会喜欢Unix,我真的建议学习shell,即使你走的是IDE的路径.它可以让你的生活更轻松.
编辑:所以要用CMake将程序移植到Linux和GCC,这就是你要做的:
CMakeLists.txt文件写入源目录(CMake使用的Makefile格式)CMakeLists.txt自动解析文件并生成您选择的构建脚本makeshellPS:我从来没有学过正常make,虽然它肯定有它的用途.CMake在我身上找到了一位热切的用户.
我本来想说“man g++”,但是那本手册很长。
只需输入
g++ main.cpp utility.cpp
Run Code Online (Sandbox Code Playgroud)
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
| 归档时间: |
|
| 查看次数: |
1511 次 |
| 最近记录: |