【问题标题】:C++ and Lua from USB [closed]来自 USB 的 C++ 和 Lua [关闭]
【发布时间】:2013-08-19 07:00:16
【问题描述】:

所以大约 2 周前,我开始学习 C++ 和 Lua,我希望能够:

  1. 编译 C++ 代码(如果我也有一个 C 编译器,那将是一个不错的奖励,因为这是我要学习的语言列表中的下一个)
  2. 解释(这是正确的术语吗?)Lua,并且
  3. 从我的 USB 驱动器执行所有这些操作,而无需从 Internet 下载任何内容或更改路径变量。 (我将主要在学校计算机上工作。)

顺便说一句,我爱上了 Sublime Text 2(它的便携式版本已经在我的 USB 驱动器上)。如果绝对有必要,我可以不用它,但我更希望无论走到哪里都能使用它。

请耐心等待,正如我之前提到的,我刚刚开始学习如何编程,我对事情的运作方式知之甚少。 我见过类似的问题,但由于我的知识有限,它们似乎对我没有多大帮助,所以请不要像我在本网站上看到的其他人一样无情地结束我的问题。

提前谢谢你!

【问题讨论】:

  • 有什么理由想在之前学习C++?
  • 除此之外:拥有可移植的 C++(或 C,就此而言)并不容易。 Lua 可移植的,但无论如何它在专门设计时都考虑到了可移植性。
  • @H2CO3 在 C 之前学习 C++ 通常是一个非常好的主意。
  • @JohnBandela 不,不完全是。
  • 呃...我并不是要通过决定在 C 之前学习 C++ 来开始一个完整的争论,显然这是一个人们大吵大闹的话题?

标签: c++ c compiler-construction lua usb-drive


【解决方案1】:

我最近在Lua WIKI 上添加了a page(信息的重要来源),这可能会对您有所帮助。这是一个完整的新手教程,介绍如何仅使用免费和“便携式”(在“可以放在 USB 驱动器上”的意义上)工具从源代码构建 Lua。它适用于 Windows 操作系统用户。不要忘记查看官方getting started 页面和main Lua site

你不能下载任何东西的事实是相当严格的(那么你怎么能得到一个免费的编译器呢?)。无论如何,正如greatwolf 提到的,TDM-GCC 是一个适用于32 位x86 PC 的出色C/C++ 编译器。它也被修补为完全“便携”:我通常从便携式 USB HD 使用它。我提到的教程向您展示了如何下载它并“安装它”。

请注意,尽管您在学校的系统管理员可能已阻止您全局更改路径变量,但您可以使用简单的批处理文件(也称为 Windows 命令 shell 脚本)为单个进程(“启动的程序”)设置它。

使用以下内容创建一个名为“myshell.cmd”的文件:

@set path=%path%;c:\the\path\to\my\app&cmd /K

c:\the\path\to\my\app 部分必须是放置应用程序可执行文件的目录(文件夹)的实际路径。当您双击myshell.cmd 时,将打开一个黑框(假设您的系统管理员没有阻止此功能),您可以在其中调用应用程序的可执行文件。

例如,如果您在该目录内的c:\myprogs\GCC 中“安装”了 TDM_GCC 编译器,您会发现一个名为bin 的子目录。该子目录必须放在路径中,因此您的 myshell.cmd 文件将如下所示:

@set path=%path%;c:\myprogs\GCC\bin&cmd /K

然后在我提到的“黑匣子”中,您可以调用编译器键入:

gcc --help

至于你的学习路径,如果你打算同时学习 Lua 和 C 或 C++,我会建议你尝试 C 而不是 C++。 C++ 有更多的“高级”特性,但它是巨大的,虽然 Lua 可以嵌入到 C++ 代码中使用(当然这是一个高级主题),它被设计为直接嵌入到 C 应用程序中(它有一个符合 C 约定的 API),因此对于初学者来说,Lua --> C --> C+Lua 的路径可能会更容易一些。 C 本身虽然很难掌握,但它是一种相当简约的语言,因此要消化的信息并不多。

不要气馁,但 IMO 对绝对初学者来说,C 和 C++ 都不是最合适的语言(它们有很多陷阱,几乎没有初学者的“安全网”)。但这取决于您,这在很大程度上取决于您的技能、奉献精神和动力;-)

希望这一切对您有所帮助。

【讨论】:

  • 非常感谢!!!你帮了大忙,我终于可以在学校解释我的 Lua 代码了!
  • @user2533402 顺便说一句,只是为了回答您对术语的疑问:您可以简单地说“运行 Lua 脚本”(“执行”也可以)而不是“解释 Lua 脚本”。从技术上讲,你没有错(确切地说是解释脚本的 Lua 解释器),但是说“我解释我的脚本”而不是“我运行我的脚本”听起来很有趣(在某些情况下它可能误导与您交谈的人)。 :-) 编码愉快!
【解决方案2】:

对于窗户,

看看

http://nuwen.net/mingw.html

您应该能够将下载内容解压缩到 USB 目录。然后您可以单击 .bat 文件打开具有正确路径设置的命令提示符。

作为奖励,它已经包含预构建的 boost,这将使您的 c++ 使用更容易。

【讨论】:

  • 学校的计算机都运行在 32 位 Windows 7 上,这是否会对 x64-native MinGW 发行版造成问题?
  • @user2533402 在这种情况下,您想获得 32 位版本的 mingw。 32 位版本可以在 Win 32 位或 64 位下运行,但 x64 mingw 只能在 Win 64 位下运行。 mingw 有一些构建变体。 TDM-GCC 是您可以查看的另一个。
  • 我是否能够使用 TDM-GCC 而无需在学校计算机上编辑 Path 变量? (对不起,如果我听起来很愚蠢)
  • @user2533402 我没有过多地研究 sublime,但我想你可以将它配置为从相对于 sublime 位置的路径调用 mingw 编译器。这应该允许您从 sublime 构建,而不会乱用环境路径。
  • nuwen 包有几个有用的批处理文件可以正确设置环境
【解决方案3】:

对于 C/C++ 部分,还建议您从 C 开始。不是出于意识形态原因,只是如果您尝试了解编译/链接等基础知识,它会简单得多。

作为第一个 C 编译器,我会推荐微型 C 编译器

Tiny C Compiler

这是我见过的最简单的方法之一,你仍然可以构建 lua 库等。

一旦您对此感到满意,那么进入更强大的环境之一(例如 MingW 或 Visual C++ 下的 gcc)应该会不那么令人生畏。

【讨论】:

    【解决方案4】:

    Lua 是微不足道的。下载二进制文件,将它们放在你的驱动器上,然后配置 Sublime Text 以在 Lua 文件上调用它们。

    C/C++ 之所以更复杂,只是因为选项范围如此之广。我使用 2003 版的 Microsoft Visual C++,它满足了我的需求。我找到了一份here

    请记住,C++ 是 C 的一个复杂得多的超集(非严格),因此您将在学习 C++ 的过程中学习大部分 C。 IMO,出于多种原因,首先学习 C 会更好。你会听到一些人反对,但在这种情况下,有一个关键:Lua 是用 C 编写的,它的 API 是为 C 设计的。将惯用的 C++(即对象)暴露给 Lua 是一个复杂的大球,你只需不要现在不需要,同时学习两种语言。

    【讨论】:

    • 感谢您的回复!但是你能帮我弄清楚一些事情吗? 1. 我不知道你所说的“lua 二进制文件”是什么意思,我可以把 LuaforWindows 放在我的驱动器上吗? 2. 如何配置 Sublime Text Portable 以使其正常工作? (对不起,如果我听起来像个白痴,我需要一步一步地完成大部分内容)
    • “Lua 二进制文件”与“Lua 源”相反;意思是源的构建版本,对于某些平台。 LuaForWindows 是一个庞大的安装,包括大量你不需要的废话。你只需要构建一个适用于 Windows 的 Lua 解释器。 Lua download page 链接到每个平台的二进制文件,including Windows。抓取win32或win64,解压到你的驱动器,你就完成了。至于配置你的编辑器来运行解释器,RTM。这是非常你需要学习如何做的基本编辑器用法。
    • 好的,感谢您的帮助!现在我要去 RTM :)
    • Lua for Windows 相对于 LuaBinaries 发行版的优势在于大量的预构建模块。这是为了响应来自 Lua 用户社区的直接请求,该发行版可以开箱即用,并包含“有趣”和“有用”的模块,否则新用户很难正确构建和配置。这不是开始的唯一方法,但恕我直言,这是一个好方法。如果您不需要控制台和基本模块之外的功能,并且想学习从源代码构建模块,那么从 LuaBinaries 开始。
    猜你喜欢
    • 1970-01-01
    • 2013-02-17
    • 2014-12-20
    • 2013-12-04
    • 1970-01-01
    • 1970-01-01
    • 2017-12-30
    • 1970-01-01
    • 2014-08-06
    相关资源
    最近更新 更多