Author Topic: Missing DFLIB file  (Read 15831 times)

K.Li

  • Full Member
  • ***
  • Posts: 191
Missing DFLIB file
« on: March 03, 2015, 06:23:47 AM »
Hello, FEAPpv users,

I was trying to build FEAPpv on Windows with the CMake tool and msys.

It went through like 94%. Then, while compiling \ver31\windows\dplot.f file, it got an error saying that the DFLIB is missing. Could anyone please help me with this error?

 


Prof. R.L. Taylor

  • Administrator
  • FEAP Guru
  • *****
  • Posts: 2647
Re: Missing DFLIB file
« Reply #1 on: March 03, 2015, 10:26:11 AM »
Probably you need to change DFLIB to IFQWIN for the Intel compiler

K.Li

  • Full Member
  • ***
  • Posts: 191
Re: Missing DFLIB file
« Reply #2 on: March 04, 2015, 01:01:12 AM »
Thank you for your information, Prof Taylor!
I am trying not to use Intel Compiler but open source program like gfortran for this project. 

hamidattar

  • New Member
  • *
  • Posts: 4
Re: Missing DFLIB file
« Reply #3 on: July 17, 2015, 03:50:01 PM »
Dear K.Li,

did you have a any luck dealing with DFLIB or IFQWIN compiling under windows with gfortran? I am trying to do the same thing at the moment and I am stuck with the compile.

Prof. R.L. Taylor

  • Administrator
  • FEAP Guru
  • *****
  • Posts: 2647
Re: Missing DFLIB file
« Reply #4 on: July 17, 2015, 04:37:26 PM »
When you compile with gfortran you do not use the files in the /windows  or other /windowx directories.  Instead you use the file in the /unix directory.  The do not contain the 'use' record.

K.Li

  • Full Member
  • ***
  • Posts: 191
Re: Missing DFLIB file
« Reply #5 on: July 18, 2015, 02:36:26 AM »
Hi, hamidattar:

I switched to Intel compiler completely later on.

Thank you, Prof Taylor, for the new suggestion!  I will try not to use the /windows folder.

K. Li

K.Li

  • Full Member
  • ***
  • Posts: 191
Re: Missing DFLIB file
« Reply #6 on: July 18, 2015, 04:30:25 AM »
Dear Prof Taylor:

I have tried it again without the /windows directory. but it is still working.

Code: [Select]
[  ...  ] .........................................................................................

[ 99%] Building Fortran object CMakeFiles/FeappvLib.dir/user/usetci.f.obj
[ 99%] Building Fortran object CMakeFiles/FeappvLib.dir/user/usolve.f.obj
Linking Fortran static library libFeappvLib.a
[ 99%] Built target FeappvLib
Scanning dependencies of target feappv
[100%] Building Fortran object CMakeFiles/feappv.dir/main/feappv.f.obj
Linking Fortran executable feappv.exe
CMakeFiles/feappv.dir/objects.a(feappv.f.obj):feappv.f:(.text+0x129): undefined reference
to `pstart_'
CMakeFiles/feappv.dir/objects.a(feappv.f.obj):feappv.f:(.text+0x142): undefined reference
to `plstop_'
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: CMakeFiles/feappv.di
r/objects.a(feappv.f.obj): bad reloc address 0x20 in section `.eh_frame'
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: final link failed: I
nvalid operation
collect2.exe: error: ld returned 1 exit status
make[2]: *** [feappv.exe] Error 1
make[1]: *** [CMakeFiles/feappv.dir/all] Error 2
make: *** [all] Error 2

I guess this is caused by the settings in the CMakeLists.txt file because in which you set the
Code: [Select]
SET_TARGET_PROPERTIES(feappv PROPERTIES VS_KEYWORD "QuickWin") so for windows machine Intel compiler is the default choice.

Then I removed those settings and use the Linux one as following,


Code: [Select]
# Set up system dependent files
 
  file( GLOB SYS_FILES ${PROJECT_SOURCE_DIR}/unix/*.f  ${PROJECT_SOURCE_DIR}/unix/*.c )
 

# Set up the archive
add_library(FeappvLib ${ELEMENT_FILES} ${PLOT_FILES} ${PROGRAM_FILES} ${USER_FILES} ${SYS_FILES})

# Set up executable
add_executable(feappv ${PROJECT_SOURCE_DIR}/main/feappv.f)
target_link_libraries(feappv FeappvLib)


# Set up system dependent files for linking
 
  find_library ( M_LIB m)
  target_link_libraries(feappv ${M_LIB})
  find_library ( X11_LIB X11)
  target_link_libraries(feappv ${X11_LIB})

But here we need X11_LIB which is not available on my Windows machine.

FEAP_Admin

  • Administrator
  • FEAP Guru
  • *****
  • Posts: 993
Re: Missing DFLIB file
« Reply #7 on: July 18, 2015, 10:21:26 AM »
The CMAKE system is somewhat experimental -- especially on Windows.  We have not tried it on msys so it will likely require a bit of experimentation.  Note that there are if checks on the system, if (${WIN32}), that help you avoid things like X11 but with msys you want the opposite behavior; you want to go down the $UNIX side of the options.  It will be great if you can debug the system on msys but if you want to save time, I suggest you just use regular make.

 btw, the missing files plstop_ pstart_ are in the directory unix/ so you seem to have skipped that directory.  Probably because of the
code block
Code: [Select]
if (${UNIX})
  file( GLOB SYS_FILES ${PROJECT_SOURCE_DIR}/unix/*.f  ${PROJECT_SOURCE_DIR}/unix/*.c )
elseif (${WIN32})
  file( GLOB SYS_FILES ${PROJECT_SOURCE_DIR}/windows/*.f )
else ()
  message("**WARNING** Operating system not supported")
endif ()


K.Li

  • Full Member
  • ***
  • Posts: 191
Re: Missing DFLIB file
« Reply #8 on: July 19, 2015, 01:49:48 AM »
Dear FEAP_Admin:

Thank you very much for your suggestion! I will try to use regular make. I have been using Intel Fortran compiler for my work. But I would like to use msys to compile Feappv so that my students could modify it and compile the program at home. They do not have Intel license.



K.Li

  • Full Member
  • ***
  • Posts: 191
Re: Missing DFLIB file
« Reply #9 on: July 21, 2015, 03:27:24 AM »
Dear FEAP_Admin:

I was able to compile Feappv ver31 with the regular make came with MinGW on a Windows machine. It seems the program could run and solve the problem to output stress values, but it crashes when the the command "plot ****" is called. It works fine with "stress all" or "disp all" commands. I guess the X11 lib is not working.     
   

K.Li

  • Full Member
  • ***
  • Posts: 191
Re: Missing DFLIB file
« Reply #10 on: July 21, 2015, 04:40:06 AM »
Hello again, I forgot to mention that I have been using the pre-built X11 libraries at https://sites.google.com/site/xportmingw/. This may not work with the MinGW I have. It does say that
Code: [Select]
Only works if DISPLAY-variable contains an IP address
(e.g. 127.0.0.1:0 works but :0 doesn't)

I am not sure how to set the IP address.
« Last Edit: July 21, 2015, 04:41:37 AM by K.Li »

FEAP_Admin

  • Administrator
  • FEAP Guru
  • *****
  • Posts: 993
Re: Missing DFLIB file
« Reply #11 on: July 21, 2015, 09:35:45 AM »
At the command prompt try typing
Code: [Select]
ifconfigThis should tell you what it things your IP is.  Note ifconfig may not be on your path.  If it isn't look in things like /sbin and /usr/sbin.  whereis ifconfig may also find it for you.

I know that FEAP/FEAPpv works with Cygwin so that could be another option for you.

K.Li

  • Full Member
  • ***
  • Posts: 191
Re: Missing DFLIB file
« Reply #12 on: July 23, 2015, 02:14:17 AM »
Dear FEAP_Admin:

I am aware how to find the IP address on my Windows machine. But I am not sure how could the X11 lib use that information. That might be the problem or just the compatibility issue of the X11 with my MinGW.

Surely, Cygwin is another option to go.