我以前使用Microsoft Visual C++在Windows中进行编程,我需要将一些可移植程序(用可移植的C++编写)设置为跨平台,或者至少我可以为Linux和Windows发布我的程序的工作版本.
我是Linux应用程序开发的新手(并且很少使用操作系统本身).
所以,今天,我安装了Ubuntu 10.04 LTS(通过Wubi)并配备了Code :: Blocks和g ++编译器作为我的主要武器.然后我编译了我的第一个Hello World linux程序,我对输出程序感到困惑.
我可以通过Code :: Blocks中的"Build and Run"菜单选项来运行我的程序,但是当我尝试通过文件浏览器从外部启动已编译的应用程序时(在/ media/MyNTFSPartition/MyProject/bin/Release中;是的,我保存在我的NTFS分区中),程序没有显示出来.
为什么?我没想到了.
我需要改变我Windows
和Microsoft Visual Studio
心态Linux
和Code::Blocks
思维方式.
所以我想出了这些问题:
如何在外部(IDE外部)执行我编译的linux程序?
在Windows中,我只是运行生成的可执行(.exe)文件
我如何分发我的linux应用程序?
在Windows中,我只是使用相应的DLL文件(如果有的话)分发可执行文件
Linux中LIB(静态库)和DLL(动态库)的等价物是什么?如何使用它们?
在Windows/Visual Studio中,我只需将所需的库添加到项目设置中的附加依赖项,我的程序将自动链接到所需的静态库(-ies)/ DLL.
是否可以使用C++库的"二进制形式"(如果提供),这样我就不需要重新编译整个库源代码了?
在Windows中,是的.有时会提供预编译的*.lib文件.
如果我想在Linux中创建一个wxWidgets应用程序,我应该选择哪个包用于Ubuntu?wxGTK还是wxX11?我可以在X11下运行wxGTK程序吗?
在Windows中,我使用wxMSW,当然.
如果问题没有.4是可能的,有预编译的wxX11/wxGTK库存在吗?没试过深谷歌搜索.
在Windows中,有一个名为"wxPack"(http://wxpack.sourceforge.net/)的项目可以节省大量时间.
很抱歉提出了很多问题,但我对这些Linux开发基础知识感到困惑.
任何形式的帮助将不胜感激=)
谢谢.
如何在外部(IDE外部)执行我编译的linux程序?在Windows中,我只是运行生成的可执行(.exe)文件
在Linux上你也这样做.唯一的区别是在Linux上当前目录默认不在PATH中,所以通常你会这样做:
./myapp
如果将当前目录添加到路径中
PATH=".:$PATH"
然后像窗户一样的方式
myapp
会这样做,但是由于安全风险,不建议这样做,至少在共享环境中(你不想运行某人留下的/ tmp/ls).
我如何分发我的linux应用程序?在Windows中,我只是使用相应的DLL文件(如果有的话)分发可执行文件
如果你认真分发,你应该了解.deb(Ubuntu,Debian)和.rpm(RedHat,CentOS,SUSE).这些是"软件包",使用户可以使用特定于分发的方式安装应用程序.
还有一些安装程序项目与Windows安装程序生成器的工作方式类似,但我建议首先研究前一个路径.
Linux中LIB(静态库)和DLL(动态库)的等价物是什么?如何使用它们?
.a(静态)和.so(动态).您可以使用它们与Windows上的方式大致相同,当然也可以使用特定于gcc的编译选项.我不使用Code :: Blocks所以我不知道他们的对话框是什么样的,最后它是关于添加-llibrary到链接选项(猜猜:在windows上它是关于添加/ llibrary ;-))
是否可以使用C++库的"二进制形式"(如果提供),这样我就不需要重新编译整个库源代码了?
是.分布中已经存在大量库.
另请注意,如果您使用.deb和.rpm进行分发,则可以说"我的应用程序需要安装此类和此类库",并且它们将从分发存档中安装.这是推荐的方式,一般情况下,您不应该分发您的库副本.
如果我想在Linux中创建一个wxWidgets应用程序,我应该选择哪个包用于Ubuntu?wxGTK还是wxX11?我可以在X11下运行wxGTK程序吗?
首先尝试wxGTK,对话框可能看起来更好,应该使用gnome主题等.
如果问题没有.4是可能的,有预编译的wxX11/wxGTK库存在吗?没试过深谷歌搜索.
尝试
apt-cache search wx
(或产生你的Ubuntu软件中心并搜索wx)
简而言之:您将在分发档案中找到所需的一切.