如果你在基于Linux的平台上编译一个程序,比如C,然后移植它来使用MacOS库,它会起作用吗?
核心机器代码是来自兼容Mac和Linux的编译器吗?
我问这个的原因是因为两者都是"基于UNIX的"所以我认为这是真的,但我不太确定.
不是问题,我只是搜索互联网寻找这个问题的解决方案,并认为我会与SO的优秀人员分享.我会用简单的术语来说明新手可以访问它.:)(如果这是错误的地方,请道歉 - 只是试图提供帮助.)
几乎所有尝试使用Eclipse C/C++ IDE的用户OS X Snow Leopard都会出现此问题,但对于在Leopard中使用Eclipse C/C++ IDE并且无法工作的人(像我一样)特别烦人当他们升级时,再次使用Eclipse.当用户去构建/编译/链接他们的软件时,会出现问题.他们收到以下错误:
发射失败.找不到二进制文件.
此外,左侧项目窗口中的"二进制"分支根本不存在.
问题:Snow Leopard附带的GCC 4.2(GNU编译器集合)是默认情况下以64位编译二进制文件.不幸的是,Eclipse使用的链接器不理解64位二进制文件; 它读取32位二进制文件.这里可能还有其他问题,但简而言之,它们最终没有生成二进制文件,至少没有Eclipse可以读取的文件,这转化为Eclipse无法找到二进制文件.因此错误.
一种解决方案是在制作文件时添加-arch i686标志,但每次手动制作文件都很烦人.幸运的是,Snow Leopard还附带了GCC 4.0,默认情况下编译为32位.因此,一种解决方案仅仅是将其链接为默认编译器.这就是我做的方式.
解决方案:GCC位于/ usr/bin中,通常是隐藏文件夹,因此除非您明确告诉系统您要查看隐藏文件夹,否则无法在Finder中看到它.无论如何,你要做的是转到/ usr/bin文件夹并删除链接GCC命令和GCC 4.2的路径,并添加一个链接GCC命令和GCC 4.0的路径.换句话说,当您或Eclipse尝试访问GCC时,我们希望命令转到默认情况下以32位构建的编译器,以便链接器可以读取文件; 我们不希望它转到以64位编译的编译器.
执行此操作的最佳方法是转到Applications/Utilities,然后选择名为Terminal的应用程序.应该出现文字提示.它应该说"(计算机名称):〜(用户名)$"(最后为用户输入一个空格).完成上述任务的方法是输入以下命令,按顺序输入每个命令VERBATIM,然后在每个单独的行后按Enter键.
cd /usr/bin
rm cc gcc c++ g++
ln -s gcc-4.0 cc
ln -s gcc-4.0 gcc
ln -s c++-4.0 c++
ln -s g++-4.0 g++
Run Code Online (Sandbox Code Playgroud)
像我一样,您可能会收到一条错误消息,告诉您无权访问这些文件.如果是这样,请尝试以下命令:
cd /usr/bin
sudo rm cc gcc c++ g++
sudo ln -s gcc-4.0 cc
sudo ln -s gcc-4.0 gcc
sudo ln -s c++-4.0 c++
sudo ln -s g++-4.0 g++ …Run Code Online (Sandbox Code Playgroud) 我正在使用Microsoft Visual Studio 2008,我正在尝试为我的程序设置exe图标.
我搜索了这个网站,发现了这个:如何在visual studio 2008中为我的应用程序设置图标?
但我找不到这个"资源视图".我在MVS08中到处寻找
如何访问资源视图并为我的应用程序设置主图标?

我使用Delphi 2009为桌面程序发布了一个可执行文件(.EXE).我没有运行程序所需的外部DLL或资源.
我使用两个组件:LMD Innovative的ELPack和Sergey Tkachenko的TRichView,它们被编译成我的可执行文件.
当我使用"Release"构建配置构建我的生产版本时,生成的可执行文件是13,533 KB.
在使用Delphi 2009之前,我使用的是Delphi 4.它生成的可执行文件只有2,671 KB,同时包含相同的两个组件,并且基本上具有与我当前版本相同的代码.
我确实理解Delphi 2009完全是Unicode(这是我升级的主要原因),并且Unicode可以导致大小增加一倍.但这大约要大5倍.
我的可执行文件必须保持5倍大的原因吗?或者有一些简单的方法来减少可执行文件大小的重要部分?
请注意.有些人正在回答压缩Delphi EXE的方法.这不是我想要做的.我试图简单地看到为什么这么多空间被用来删除可能没有必要的东西.如果这样做,如果需要,仍然可以在之后进行压缩.
安装后,可执行文件的大小无关紧要.它用于下载目的,并最大限度地减少要压缩它的服务器负载和下载时间.我更喜欢使用Inno Setup并在安装例程中压缩程序本身.然后在安装时,它将扩展为完整大小.这既可以防止可能的病毒检测,又可以消除在内存中解压缩程序所需的额外启动时间.此外,我编写了可执行文件和我的安装例程的代码,并且一些压缩技术与此不兼容.
有关压缩的更多信息,请参阅StackOverflow问题: Delphi EXE压缩器?
ldsandon让我准确提供我正在使用的选项,所以他们在这里:
使用readlink函数作为解决方案如何在C中找到可执行文件的位置?,我如何将路径转换为char数组?此外,变量buf和bufsize代表什么,我如何初始化它们?
编辑:我正在尝试获取当前正在运行的程序的路径,就像上面链接的问题.这个问题的答案说要用readlink("proc/self/exe").我不知道如何在我的程序中实现它.我试过了:
char buf[1024];
string var = readlink("/proc/self/exe", buf, bufsize);
Run Code Online (Sandbox Code Playgroud)
这显然是不正确的.
我在尝试从C#应用程序执行可执行文件时需要帮助.
假设路径是cPath,EXE是HHTCtrlp.exe,必须传递的参数是cParams.
我该怎么做?
路径是变量的原因是要运行3个不同的EXE文件,路径将根据运行的路径而变化,与参数字符串相同.
任何帮助将不胜感激.
在解释词法分析器和解析器之后,关于如何创建编译器的所有文本都会停止.他们没有解释如何创建机器代码.我想了解端到端流程.
目前我的理解是,Windows exe文件格式称为Portable Executable.我读到了它的标题,我还没有找到一个可以轻松解释这个问题的资源.
我的下一个问题是,我没有看到任何解释机器代码如何存储在文件中的资源.是否像32位固定长度指令一样接一个地存储在该.text部分?
有没有地方至少解释如何创建一个什么都不做的exe文件(它有一个No Op指令).然后我的下一步是链接到dll文件以打印到控制台.
windows compiler-construction linker executable portable-executable
我一直在尝试一个开源的个人人工智能助理脚本。该脚本工作正常,但我想创建一个可执行文件,以便我可以将该可执行文件赠送给我的一位朋友。但是,当我尝试使用 auto-py-to-exe 创建可执行文件时,出现以下错误:
Running auto-py-to-exe v2.10.1
Building directory: C:\Users\Tarun\AppData\Local\Temp\tmpjaw1ky1x
Provided command: pyinstaller --noconfirm --onedir --console --no-embed-manifest "C:/Users/Tarun/AppData/Local/Programs/Python/Python310/AI_Ass.py"
Recursion Limit is set to 5000
Executing: pyinstaller --noconfirm --onedir --console --no-embed-manifest C:/Users/Tarun/AppData/Local/Programs/Python/Python310/AI_Ass.py --distpath C:\Users\Tarun\AppData\Local\Temp\tmpjaw1ky1x\application --workpath C:\Users\Tarun\AppData\Local\Temp\tmpjaw1ky1x\build --specpath C:\Users\Tarun\AppData\Local\Temp\tmpjaw1ky1x
42681 INFO: PyInstaller: 4.6
42690 INFO: Python: 3.10.0
42732 INFO: Platform: Windows-10-10.0.19042-SP0
42744 INFO: wrote C:\Users\Tarun\AppData\Local\Temp\tmpjaw1ky1x\AI_Ass.spec
42764 INFO: UPX is not available.
42772 INFO: Extending PYTHONPATH with paths
['C:\\Users\\Tarun\\AppData\\Local\\Programs\\Python\\Python310']
43887 INFO: checking Analysis
43891 INFO: Building Analysis because Analysis-00.toc is non existent
43895 INFO: …Run Code Online (Sandbox Code Playgroud) executable ×10
c++ ×3
linux ×2
python ×2
windows ×2
c ×1
c# ×1
compilation ×1
delphi ×1
eclipse ×1
icons ×1
index-error ×1
linker ×1
lua ×1
macos ×1
path ×1
pyinstaller ×1
resources ×1
tuples ×1