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

error LNK2001: unresolved external symbol

Mike896
Beginner
20,933 Views

Hi

I convert one CVF's project to IVF's project.

Then I found some error linking showing:

***.obj : error LNK2001: unresolved external symbol _SYSTEM@8

or error LNK2001: unresolved external symbol _IERRNO@0

These ***.obj are all for module files.

I use some IMSL functions and I have set the "library" and "include". There are no errors relating IMSL libraries.

Thank you in advance.

MikeLiu

0 Kudos
60 Replies
mecej4
Honored Contributor III
2,839 Views

DENSE_LP is not present in IMSL4. It is present in IMSL6 (available with Intel Fortran as an option; see Steve Lionel's response above) and IMSL7 (available from Roguewave).

I stated above that "Current versions of IMSL provide a newer routine for solving dense LP problems, called DENSE_LP."

0 Kudos
sinereh_a_
Beginner
2,839 Views

Hello. Could you please help me with finding a fortran code for solving a constrained linear programming problem (having equlity and inequality constraints)? I have found one in net but it does not include the inequality constraints.

thanks in advance.

0 Kudos
mecej4
Honored Contributor III
2,839 Views

Several LP solvers are categorized and listed at Mittelman's page: http://plato.asu.edu/sub/nlores.html#LP-problem . In particular, see the freely available LP-Solve package http://lpsolve.sourceforge.net/ .

0 Kudos
sinereh_a_
Beginner
2,839 Views

Thanks a lot.

0 Kudos
sinereh_a_
Beginner
2,839 Views

I did these changes in my program. But I receive the following error:

 

--------------------Configuration: Bargaining_LP_check_3 - Win32 Debug-------------------- C:\Documents and Settings\Administrator\Desktop\Fortran_2\FORTRAN\Bargaining_LP_check_3.f90(1): Could not find the file DENSE_LP_INT.mod. Compiling Fortran...

C:\Documents and Settings\Administrator\Desktop\Fortran_2\FORTRAN\Bargaining_LP_check_3.f90 C:\Documents and Settings\Administrator\Desktop\Fortran_2\FORTRAN\Bargaining_LP_check_3.f90(1) : Error: Error in opening the Library module file.   [DENSE_LP_INT] USE DENSE_LP_INT ----^

C:\Documents and Settings\Administrator\Desktop\Fortran_2\FORTRAN\Bargaining_LP_check_3.f90(38) : Error: Keyword arguments are invalid without an explicit interface.   [XLB] CALL DENSE_LP (AA2, BB2, BB2, C2, IRTYPEE, OBJ2, X2, DSOL, XLB=XLB, XUB=XUB) -----------------------------------------------------------^

C:\Documents and Settings\Administrator\Desktop\Fortran_2\FORTRAN\Bargaining_LP_check_3.f90(38) : Error: Keyword arguments are invalid without an explicit interface.   [XUB] CALL DENSE_LP (AA2, BB2, BB2, C2, IRTYPEE, OBJ2, X2, DSOL, XLB=XLB, XUB=XUB) --------------------------------------------------------------------^ Error executing df.exe.

Bargaining_LP_check_3.obj - 3 error(s), 0 warning(s)

I have attached the program too.

 

0 Kudos
sinereh_a_
Beginner
2,839 Views

I need to use RUNQQ command for linking a FORTRAN code with another one. But I have a problem. I have attached a simple example in which the problem occurs. When I run the "testrunqq.f90" file the "discrete2.f90" is executed itself using RUNQQ command. I have written in "discrete2.f90" that a result (y (6)) should be written in a text file (testout.txt). But this does not happen. What should I do for that? I cannot understand why this happens. Although if I run the “discrete2.f90" individually I get the appropriate result.

Thanks in advance.

0 Kudos
mecej4
Honored Contributor III
2,839 Views

I compiled the two programs at the command line and ran the second EXE file. It loaded and ran the first EXE and produced the output file with no problems.

I suspect that you are building and running using the IDE, and that the current working directory is not what you think it is. After a run which apparently failed to produce the testout.txt file, use a file search utility. You will probably find it somewhere within the project file tree.

0 Kudos
sinereh_a_
Beginner
2,839 Views

I could not find the "testout" file anywhere in my computer. you said you suspect that I am building and running using the IDE. Could you explain about it more? I just open the "testrunqq.f90" and compile, build, and execute the code. No error is received but I can not find the output file.

0 Kudos
Casey
Beginner
2,839 Views

sinereh a. wrote:

you suspect that I am building and running using the IDE. Could you explain about it more? I just open the "testrunqq.f90" and compile, build, and execute the code. 

If you are doing that from within Visual Studio, that is what is meant by "using the IDE".  The alternative is to use a command window run the compiler and executable from the command line.

0 Kudos
mecej4
Honored Contributor III
2,839 Views

Try the following: Add just after the line containing "subroutine discret1":

[fortran]

use dflib
character*80 cwd
integer ist[/fortran]

After the "write" statement line in the same subroutine, add these lines:

[fortran]

ist=getcwd(cwd)
write(*,'(1x,A)')trim(cwd)
pause[/fortran]

Compile and run the program. The subroutine will print the name of the working directory, and pause to let you read it. After the program has finished, look for the output file in that directory.

0 Kudos
sinereh_a_
Beginner
2,839 Views

thanks. I will do it right now.

0 Kudos
sinereh_a_
Beginner
2,839 Views

The file is made in the same folder that the two codes are in. but it appears just when I run the "discrete2" separately. When I run the "testrunqq" it does not make the output file for me.

 

0 Kudos
sinereh_a_
Beginner
2,839 Views

I got something! It seems the command line " result=RUNQQ ('discrete2','-c -r')" does not run the other code at all. Because I wrote other commands like "print*,33333333333" in the second code but it is not shown in the command window after running the first code. So the problem is not the second code or the output file which is not appeared! The problem is the line " result=RUNQQ ('discrete2','-c -r')"... But how it works in your CVF?

0 Kudos
sinereh_a_
Beginner
2,839 Views

Now I see that the result is given equal to -1 which means the runqq failed! What shoud I do for that to run?

0 Kudos
mecej4
Honored Contributor III
2,839 Views

I get a return value of 0 from RUNQQ, as expected. Do you have both EXE files in the same directory, or do you have them in separate subdirectories? If the TESTRUNQQ program did not find the DISCRETE2.Exe file in the same directory, the RUNQQ call would return -1.

0 Kudos
sinereh_a_
Beginner
2,839 Views

The two files are in one folder. How can I be sure that in CVF they are included in one directory?

0 Kudos
sinereh_a_
Beginner
2,839 Views

 

 

0 Kudos
sinereh_a_
Beginner
2,839 Views

The problem was solved by moving the EXE. file from the "debug" folder to where the first code was located.

Thanks.

0 Kudos
sinereh_a_
Beginner
2,735 Views

How can I have the exact runtime of my code?

Thanks

0 Kudos
Reply