Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.

Paths etc....

reneeculver
Beginner
1,563 Views
Ok I'm trying to do a build and failing but only by a little. I think. The hello world app was flawless.
Currently I an trying to build an index file for the project.

Progress! At least now I have rudimentatry build problems.

The directory structure is:

C:\\temp\\adventure\\adventure\\datafiles\\test\\build

The main source for the datais:

C ABUILD- BUILD DUMMY AINDX.DAT FILE FOR ADVENTURE

C

PROGRAM ABUILD

IMPLICIT INTEGER*2 (A-Z)

C

CALL SAVEGM(.FALSE.,I)

stop 'May the Schwartz be with you'

END

C

block data

IMPLICIT INTEGER*2 (A-Z)

COMMON /VERSN/ VMAJ,VMIN,VEDIT

DATA VMAJ/0/,VMIN/0/,VEDIT/0/

end

The eventual object is to create a file of about 63Kb (16 bit standards).

Temporarily this is my build command procedure:

c:\\"Program Files (x86)"\\intel\\composerxe-2011\\bin\\intel64\\ifort.exe /libpath:c:\\"Program Files (x86)"\\intel\\composerXE-2011\\compiler\\lib\\intel64\\ c:\\temp\\adventure\\adventure\\DataFiles\\test\\build\\Abuild.for

Already I have a couple of build problems. I don't think I have my enviroment variables

and build variables right: Above is A.cmd:

The indexed files for adventure have yet to build. Right now all of the activity is occurring in /build. I'm attempting to get A.cmd right. I don't think that libpath is the correct switch to point to the libraries but in this environment I'm not sure.

To be honest for this portion I'd like to do a compile and then a searate link to link abuild.obj with but I don't how to do that yet. The linker and her DLLs are there in /build.

Where do I find compiler errors such as ?

Fortcom: Severe: Invalid argument

Right now, Im recieving errors telling me "file is (86) and the compilation aborted for that reason.

Renee



0 Kudos
15 Replies
mecej4
Honored Contributor III
1,563 Views
If you use the Start:Programs::command_prompt:Fortran_Build_Environment...> to launch a command window, the environment will be properly set. If you start a usual command window, you will have to set the environment yourself:

"c:\Program Files (x86)"\intel\composerxe-2011\bin\ifortvars.bat ia32

With the environment set up, change to the directory where you have your program source; then, to compile your file all you have to do is

ifort /c abuild.for

The /c says "compile, don't try to link".

Notes: C:\temp is not a wise choice for a directory in which to place your source files. The normal convention is that it is a place for temporary files, and some utilities periodically scrub that directory and its subdirectories.

If you next write the needed subroutines in, say, subs.for, you then do

ifort /c subs.for
ifort abuild.obj sub.obj

OR

ifort abuild.obj subs.for

For such short command lines, issuing them directly is easier than putting the commands into a batch file and calling up the batch file from the command prompt.

Note that we let the compiler driver ("ifort") call the linker for us. You can call the linker directly but you have to know what Fortran runtime and what system libraries will be needed, perhaps a start-off object as the first scan-item, etc. There is no reason to contend with all that at this point.

Also note that we did not use full pathnames for the compiler and our source file(s). If you keep things simple and straightfoward, you can do every aspect of the program build in one working directory, and you will not need to contend with the issues of the following paragraphs.

Pathnames with embedded blanks are tricky for the beginner. The problem is that the command processor has to know how to split the command line to identify the command to fork and the arguments to pass to the forked command. Arguments are separated by spaces. An argument with blanks clash with that convention: is a specific blank a separator or is it just part of the argument string? Tha's where the quotes come in.

The next wrench-in-the-works is the colon, which is used by IFort to separate sub-options from the main option. As with the blank, there is the question: "is this colon a sub-option separator, or is it part of the argument?" It is because of this conflict that your c:"Program Files (x86)..." suboption for the /libpath option confused the compiler, since the colon is outside the quotes. The compiler driver stumbled when parsing the command line. When that happens, usually the specific error message printed out is incoherent babble. Looking it up in the Intel Fortran manuals is thus a waste of time.

0 Kudos
TimP
Honored Contributor III
1,563 Views
"c:\Program Files (x86)"\intel\composerxe-2011\bin\ifortvars.bat intel64
would set up the 64-bit build environment (both the Intel compiler and the Microsoft tools). If you have an error complaining about an x86 file, it means you have mixed the 32- and 64-bit compilation options.
In order for the 64-bit intel64 compiler to work, the Microsoft C++ X64 must have been installed. In VS2010, X64 components of C++ are included by default when you pick C++ support; in the earlier VS, you must select X64 under C++ yourself.
0 Kudos
mecej4
Honored Contributor III
1,563 Views
Tim, I think that her post makes it clear that she is using only the x64 environment. She was also able to build and run a "hello world" program.

The "(86)" is just a piece of the incorrectly quoted lib-path-string. Even the X64 compiler happens to be installed under "c:\Program Files (x86)".

I verified this statement by typing her compiler command line with the incorrectly quoted /libpath suboption. I happen to have the compiler installed in the default location. And, Renee, please note that this thread should attest to the importance of quoting compiler error messages in full!
[bash]s:LANG>"c:Program Files (x86)"intelcomposerxe-2011binintel64ifort.exe /libpath:c:"Program Files (x86)"
intelcomposerXE-2011compilerlibintel64 c:tempadventureadventureDataFilestestbuildAbuild.for
Intel Visual Fortran Intel 64 Compiler XE for applications running on Intel 64, Version 12.0.1.070 Bu
ild 20110112
Copyright (C) 1985-2011 Intel Corporation. All rights reserved.
ifort: command line warning #10006: ignoring unknown option '/libpath:c:"Program'
ifort: command line warning #10161: unrecognized source type 'Files'; object file assumed

fortcom: Severe: No such file or directory

... file is '(x86)intelcomposerXE-2011compilerlibintel64 c:tempadventureadventureDataFilestestbuil
dAbuild.for'
compilation aborted for (x86)intelcomposerXE-2011compilerlibintel64 c:tempadventureadventureDataFile
stestbuildAbuild.for (code 1)
[/bash]
0 Kudos
anthonyrichards
New Contributor III
1,563 Views
I would also recommend that the poster avoid ALL IMPLICIT statements, except 'IMPLICIT NONE'!
0 Kudos
reneeculver
Beginner
1,563 Views

Let me take care of a couple of things while I'm at it. This is a historical preservation of the first game that existed on computers. As such I want to make the most minimal changes possible. As you can see the game was originally done on a DEC machine. I used to be a VMS development engineer for DEC (Digital). I know the value of complete error messages BUT my developmebt machine has the new Explorer on it and this board will not read the new Explorer. Fortunately, I have a laptop that I can move to with the old Explorer on it, but the situation doesn't help getting full pictures of error messages over here. Secondly I do not even know the proceedure for getting compiler output onto this board. DEC's compiler was sold to Intel which is why I'm using it.

I wanted to thank you so much for the help. Does anyone know how use enviroment variables to shorten the command lines? DEC used to have logicals which are probably similar.

Renee

0 Kudos
reneeculver
Beginner
1,563 Views
"Pathnames with embedded blanks are tricky for the beginner. The problem is that the command processor has to know how to split the command line to identify the command to fork and the arguments to pass to the forked command. Arguments are separated by spaces. An argument with blanks clash with that convention: is a specific blank a separator or is it just part of the argument string? Tha's where the quotes come in."

I know. Actually I would call it an inconsistancy of MS.

Renee
0 Kudos
reneeculver
Beginner
1,563 Views
There is every reason to do seperate links and compiles at this point. Linkwise, I am linking a .for and and a .obj to make this file. I gues I could just compile the sources each time and eliminate the linker but i'll have to get a clean compile first.

By the way, I'll give Adventure to anyone who wants it if I am successful. In the seventies, whether or not you liked Adventure or not, was the measure of a "real programmer". Programmers love playing the game.

Renee
0 Kudos
mecej4
Honored Contributor III
1,563 Views
The original code for Crowther's Adventure is available on the Web, but it will not be accepted by current compilers, as it is replete with nonstandard/illegal Fortran and features specific to the PDP-11 architecture.

There are many ports of that game for current compilers. This one is for OS/X, and the sources given there compile fine on Windows.

Mac OS X and Colossal Cave Adventure

To read help text about setting environment variables (the equivalent of "logicals"), type "help set" at the command line.

To insert program source or output in a post here, use the syntax highlighter tool (yellow pencil icon) from the toolbar.
0 Kudos
Steven_L_Intel1
Employee
1,563 Views
Here's a version that is buildable with ifort.
0 Kudos
reneeculver
Beginner
1,563 Views

Bill,

My build is from the ms-dos version and I followed my own advice, and using two .FOR files that I was able to build an empty database of approximately 11kb. I learned much andgotten every thing down but the environment variables. I did as the group sugested and built the database making project with vs. Everything went well except where were the results? The IDE told me that the results were in

c:\users\renee\local\temporary Projects\BuildDB

BuildDB was the name of the project. I looked ans sure enough there it was.

By the way....Temp is a name that I selected years ago for builds. How do I control where VS puts the output?

Renee

0 Kudos
reneeculver
Beginner
1,563 Views
Steve,

I wanted to thank you. I remember your name. You wereone of myheroes. I used F4P and then became interested in Bliss.

Today's good fortune has served as an encouragement and I've decided to press forward since Intel has supplied the licensing to me for a full cluster kit and give it to the world.

Reneone
0 Kudos
reneeculver
Beginner
1,563 Views
Steve,

I wanted to thank you. I remember your name and you were one of my heroes and then I got interested in Bliss.

Todays good fortune, has provided the encouragement I need to press forward so I can release Adventure to the world and besides that Intel has suppled me with a full cluster composer kit to do it. Eventually I hope to give away a 32 and 64 bit version.

The world needs to know about Adventure and to play it.

Renee
0 Kudos
reneeculver
Beginner
1,563 Views
Steve,

If I want.... do I have Intel's permisssion to give that copy away at no charge?

Renee
0 Kudos
Steven_L_Intel1
Employee
1,563 Views
It's not Intel's code. I found it at another web site (see the readme) and just configured it to build with Intel Fortran. I don't care what you do with it.
0 Kudos
reneeculver
Beginner
1,563 Views
Steve,

Please write to me. My address is rmctwo at gmail.com.

Renee
0 Kudos
Reply