草庐IT

c++ - 强制 GCC 将 .cpp 文件编译为 C

我有一个外部提供的.cpp文件。它是C兼容代码和一点C++的混合体。C++代码只是C的包装,以利用C++的特性。它使用#ifdef__cplusplus宏来保护C++代码,这很棒。不幸的是,如果我尝试使用GCC进行编译,由于文件结尾,它会将其视为C++。我知道gcc和g++之间的区别-我不想编译为C++。有什么方法可以强制GCC将此文件视为C文件?我试过使用例如--std=c99,但这会正确产生C99对C++无效的错误。将文件重命名为.c是可行的,但我希望尽可能避免这种情况,因为它是由外部提供的,最好保留原始拷贝。 最佳答案 gcc

c# - 在 Visual Studio 中编译为独立的可执行文件 (.exe)

如何在VisualStudio中制作独立的exe。它只是一个简单的控制台应用程序,我认为用户不会喜欢安装一个微型控制台应用程序。我使用VisualStudio命令提示符编译了一个简单的cpp文件。即使没有安装.NET框架,exe也能工作吗?我使用了nativeC++代码。 最佳答案 在您的项目文件夹中,它们是一个bin文件夹。在您的bin文件夹内,有2个文件夹,一个Release和一个Debug。对于您完善的.exe,您需要进入您的Release文件夹。我不太确定你问的是不是这个 关于c

java - 如何将 android 项目作为库导入而不是将其编译为 apk (Android studio 1.0)

我尝试导入一个项目(projLib)作为另一个项目(projAPK)的依赖项。projAPKgradle有这个:dependencies{compileproject(':libs:NewsAPI')compileproject(':projLib')}但是当我同步gradle时它给出了这个错误:Error:DependencyAndroid_2015:projLib:unspecifiedonprojectprojAPKresolvestoanAPKarchivewhichisnotsupportedasacompilationdependency.File:/Users/mynam

c++ - 我可以将 src/中的所有 .cpp 文件编译为 obj/中的 .o,然后链接到 ./中的二进制文件吗?

我的项目目录如下所示:/projectMakefilemain/srcmain.cppfoo.cppfoo.hbar.cppbar.h/objmain.ofoo.obar.o我希望我的makefile将/src文件夹中的所有.cpp文件编译为.o文件夹中的.o文件/obj文件夹,然后将/obj中的所有.o文件链接到顶级文件夹/中的输出二进制文件中项目。我几乎没有使用Makefile的经验,并且不确定要搜索什么来完成此操作。另外,这是一种“好”的方法吗,还是有一种更标准的方法来解决我正在尝试做的事情? 最佳答案 Makefile部分问

build - 将 Common Lisp 编译为可执行文件

我最近开始使用SBCL学习CommonLisp。如何将我的Lisp程序编译成Windows二进制文件? 最佳答案 制作hello.exe:*(defunmain()(print"hello"))MAIN*(sb-ext:save-lisp-and-die"hello.exe":toplevel#'main:executablet)[undoingbindingstackandotherenclosingstate...done][savingcurrentLispimageintohello.exe:writing3160bytes

ruby - 将字符串编译为 Compass 文件

有没有一种简单的方法可以将一串文本编译为compass(sass)样式表?示例输入:"section\nbackground:darken(white,10%)" 最佳答案 sass有:-s,--stdinReadinputfromstandardinputinsteadofaninputfile和--compassMakeCompassimportsavailableandloadprojectconfiguration.你可以像这样使用popen:output=IO.popen("sass-s--compass","w+")do

python - 将字符串编译为 Ruby 字节码以获得更好的性能——就像 Python 中的 compile()

我有一个字符串(已验证、受信任等),其中包含旨在在Ruby循环中快速运行的源代码。在Python中,我会将字符串编译成抽象语法树,然后再将其编译为eval()或exec():#Python3examplegiven_code='n%2==1'pred=compile(given_code,'','eval')print("Passed:",[nforninrange(10)ifeval(pred)])#Outputs:Passingmembers:[1,3,5,7,9]Ruby没有编译功能,那么最好的实现方式是什么? 最佳答案 基于

c++ - 为什么 unique_ptr 实例化编译为比原始指针更大的二进制文件?

我一直认为std::unique_ptr与使用原始指针相比没有开销。但是,编译如下代码#includevoidraw_pointer(){int*p=newint[100];delete[]p;}voidsmart_pointer(){autop=std::make_unique(100);}使用g++-std=c++14-O3生成以下程序集:raw_pointer():subrsp,8movedi,400calloperatornew[](unsignedlong)addrsp,8movrdi,raxjmpoperatordelete[](void*)smart_pointer():

c++ - 为什么 unique_ptr 实例化编译为比原始指针更大的二进制文件?

我一直认为std::unique_ptr与使用原始指针相比没有开销。但是,编译如下代码#includevoidraw_pointer(){int*p=newint[100];delete[]p;}voidsmart_pointer(){autop=std::make_unique(100);}使用g++-std=c++14-O3生成以下程序集:raw_pointer():subrsp,8movedi,400calloperatornew[](unsignedlong)addrsp,8movrdi,raxjmpoperatordelete[](void*)smart_pointer():

python - Python 是解释的,还是编译的,或者两者兼而有之?

据我了解:解释型语言是一种高级语言,由解释器(将高级语言转换为机器代码然后执行的程序)在运行中运行和执行;它一次处理一点程序。已编译语言是一种高级语言,其代码首先由编译器(将高级语言转换为机器码的程序)转换为机器代码,然后由executor(另一个运行代码的程序)。如果我的定义有误,请纠正我。现在回到Python,我对此感到有些困惑。在任何地方,您都知道Python是一种解释型语言,但它被解释为一些中间代码(如字节码或IL),而不是为机器代码。那么哪个程序会执行IM代码呢?请帮助我了解如何处理和运行Python脚本。 最佳答案 首先