how do i instruct the C compiler (gcc &| cc) to make a "Windows executable" in command line? just like csc /t:winexe filename.cs in c#?
my goal is to create a GUI(winapi) based app without the console.
Are you using MinGW like package and do the build on windows platform? If not I'm afraid you can build PE image from Linux like environment directly, except you are using WINE.
Related
I start to learn c and c++ programming and I write it in Linux.
Can I make binary file with g++ and run it as exe in window 7? or i need to compile the code in windows again?
You can use a mingw cross compiler to build windows binaries in linux. In Ubuntu (and I guess other Debian variants as well) the package is called mingw32. You then have a cross compiler under the name i586-mingw32msvc-g++ (or similar). For building simple command line programs without library dependencies this is an OK solution.
If you need more then this I'd recommend you use MXE (M cross environment). MXE installs its own cross compiler and can build many libraries for you so you don't need to care about how to build the library dependencies.
For example the OpenSCAD project (a 3D CAD program that is using Qt for its GUI) is using MXE for building the Windows releases. See this page on the OpenSCAD wiki for a description of the build process.
So far the only way I found is by making the shared object for a function that is written in e.g. myfile.c:
R CMD SHLIB myfile.c
and then testing in RGui using a script.
I want to code on Windows and i would like an easier way for compiling c code that uses R api calls, preferably using an IDE like Netbeans or Visual Studio. Is this possible ?
EDIT
Install Netbeans C\C++
Install R
Install RTools - contains C\C++ compiler for Netbeans
copy include files from R\R-2.12.2\include folder to RTools\MinGW\include folder
copy dll files from R\R-2.12.2\bin\i386 to Rtools\MinGW\lib
Make Netbeans project C\C++ - will require to select compiler tools from RTools\MinGW folder
copy required dll files from R\R-2.12.2\bin\i386 to execution folder of Netbeans Project
Of course it is. Just look at the output generated by R CMD SHLIB foo.c which is clearly echoed and copy these settings into your preferred IDE. It will work, and it will be less portable.
Nobody handcuffs you; but R using the same command on all platforms is actually a real feature and not a bug as you seem to suggest.
I'm trying to compile a downloaded program in Windows. The program is usually run in Linux, but is programmed to also run in Windows (the code has #if defined(_WIN32)'s in it, and claims to work with borland free tools). When I try to use make from the command line, it tells me "Incorrect command line argument: -C". In the makefile, there are many lines that say "make -C" followed by a directory name. Does this syntax not work in Windows? What is a correct way to do this? Is there any way to compile this for native use in Windows with this makefile?
Windows itself doesn't come with a make utility. Microsoft does have a 'make' utility that comes with their development tools (such as Visual Studio, the Platform SDK, or the Windows Driver Kit) but it's called nmake.
You probably need GNU make to process those makefiles. you can get a copy for Windows here:
http://unxutils.sourceforge.net/
However, if the makefile isn't written to be able to be run on Windows, it'll probably not work well. You'll also need to make sure you have whatever other development tools the makefile calls upon (maybe the Borland compiler or GCC), and there may be other configuration that needs to be done specific to the project you want to build. It's probably not a matter of just having the correct make utility.
-C is "change working directory" only for the gmake command (from the GNU package). You should take a look in the manual for your Make-Utility and see, wheather it supports something äquivalent.
Peter
Are you using cygwin?
Are there any instructions for installing on windows(perhaphs in a README file)?
I am new to the text editor Vim. I want to use it for programming
C. I am using Windows and the bcc32 compiler from Borland.
I cannot seem to get my C code to compile.
I think something is wrong with my setup. Can someone give step by step information
on how to setup Vim for compiling using BCC?
I've not used the bcc32 compiler, but I'm assuming it uses a different make tool than make. You'll need to put:
set makeprg=<make command>
Somewhere in your .vimrc file.
A Google search of vim and bcc led me to this page.
http://ftp.nluug.nl/vim/runtime/compiler/bcc.vim
You'll have to place this bcc.vim in the ~/vimfiles/compiler directory
I haven't done C in a long time. I'd like to compile this program, but I have no idea how to proceed. It seems like the makefile refers to GCC a lot and I've never used GCC.
I just want an executable that will run on windows.
You may need to install either cygwin or mingw, which are UNIX-like environments for Windows.
http://www.mingw.org/
http://www.cygwin.com/
When downloading/installing either cygwin or mingw, you will have the option of downloading and installing some optional features; you will need the following:
gcc (try version 2.x first, not 3.x)
binutils
GNU make (or gmake)
If it requires gcc and you want it to run on Windows, you could download Cygwin.
That's basically an emulator for GNU/Linux type stuff for Windows. It works with an emulation DLL.
http://www.cygwin.com/
In order to compile this program you need a C compiler. It does not have to be gcc, although you are already given a makefile set up to use gcc. The simplest thing for you to do would be the following:
Install cygwin
Open the cygwin command prompt
go into the directory where you have your makefile
type 'make'
That should compile your program
If you are not comfortable with using command line tools then you can download the free version of MS Visual Studio and import the source files into a new Visual Studio project. This way you would not need to install cygwin and use gcc, but you would need to know how to create projects and run programs in Visual Studio.
You almost certainly don't need all of cygwin to compile using gcc. There are plenty of standalone gcc clones for Windows, like gcw.
If it's reasonably portable C code (I haven't looked at it), then you may be able to just ignore the included Makefile and feed the source into whatever compiler you do want to use. What happens when you try that?
Dev-C++ provides a simple but nice IDE which uses the Mingw gcc compiler and provides Makefile support. Here are the steps I used to build the above code using Dev-C++ (i.e. this is a "how-to")
After downloading the source zip from NIST, I
downloaded and installed the Dev-C++ 5 beta 9 release
created a new empty project
added all the .c files from sts-2.0\src
Then under Project Options
added -lm in the Linker column under Parameters
added sts-2.0\include to the Include Directories in Directories
set the Executable and Object directories to the obj directory under the Build Options
and then hit OK to close the dialog. Go to Execute > Compile and let it whirl. A minute later, you can find the executable in the sts-2.0\obj directory.
First, there is little chance that a program with only makefiles will build with visual studio, if only because visual studio is not a good C compiler from a standard POV (the math functions in particular are very poorly supported on MS compilers). It may be possible, but it won't be easy, specially if you are not familiar with C. You should really stick to the makefiles instead of trying to import the code in your own IDE - this kind of scienfitic code is clearly meant to be compiled from the command line. It is a test suite, so trying things randomly is NOT a good idea.
You should use mingw + msys to install it: mingw will give you the compilers (gcc, etc...) and msys the shell for the make file to run correctly. Contrary to one other poster, I would advise you against using gcc 2 - I don't see any point in that. I routinely use gcc 3 (and even 4) on windows to build scientific code, it works well when the code is unix-like (which is the standard platform for this kind of code).