Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.

Errors using custom DLL

jamie_z_wallace
Beginner
482 Views
Hi, I am trying to create my own custom DLL by following the REadMe file in the customdll directory. I am at the stage of running nmake and I am getting error messages. Here is the contents of my tools.ini file:
[NMAKE]
## init-file to build custom DLL using Intel Integrated Performance Primitives
CL_ENV=OFF
#- define this if you want to use MSVCDir
##CL_ENV=ON
!IF "$(CL_ENV)"!="OFF"
## Check if MS CL compiler is accessible, just try it
## It doesn't guarantee that MSVC include and lib will be
## Although ">nul" redirects usage message, logo message is printed
! IF [ CL > nul ] == 0
CL_ENV=ON
! ELSE
CL_ENV=OFF
! ENDIF
!ENDIF
##-- Please customize the following names below
## MS VC home directory.
# You may not define this name if MSVC is accessible
#MSVCDir=C:Program FilesMicrosoft Visual Studio .NETVc7
MSVCDir=C:Program FilesMicrosoft Visual Studio .NETVc7
## Intel IPP install directory
!IF [if exist "%IPPROOT%" (echo IPPROOT: %IPPROOT%) else (exit 1)] == 1
IPPROOT=C:Program FilesIntelIPP41ia32_itanium
!ENDIF

## Name of the custom DLLs
DllName=IppPIMS
## Directory name for lib-,map-,obj-files
#OutDir=.Lib
OutDir=C:PIMSIPP
## Directory name for dll
#DllDir=.Bin
DllDir=C:PIMSIPP
# ###############################################################
# Supported processors.
# px=Generic IA-32 processor,
# a6=Intel Pentium III processor,
# w7=Intel Pentium 4 processor
CpuList=px a6 w7 t7
## Name of the test application to build
TestName=ipptwo
##-- Please customize the names above
## check if MSVC path is accessible
!IF "$(CL_ENV)"=="OFF"
! IF !EXIST ("$(MSVCDir)")
! ERROR Path to MSVC is not found! Check the MSVCDir in tools.ini
! ENDIF
!ENDIF
## Combine names for include and library folders, for compiler and linker
!IF "$(CL_ENV)"=="OFF"
CC="$(MSVCDir)incl.exe"
LINK="$(MSVCDir)inlink.exe"
LIBINC=-I"$(IPPROOT)include" -I"$(MSVCDir)include"
VCLIB="$(MSVCDir)libmsvcrt.lib" "$(MSVCDir)libkernel32.lib" "$(MSVCDir)libuser32.lib" "$(MSVCDir)libgdi32.lib"
!ELSE
CC=cl.exe
LINK=link.exe
LIBINC=-I"$(IPPROOT)include"
VCLIB=msvcrt.lib kernel32.lib user32.lib gdi32.lib
!ENDIF
I am getting the following error message when I run nmake:
tools.ini(57) : fatal error U1033: syntax error : '"C:Program' unexpected Stop.
Now I am sure that this is because DOS doesn't like the spaces in the file path but I do not know how to get around the problem. I have tried some of the suggestions in other posts.
Particularly to change from 'Program Files' to 'Progra~1' files. How does this work? Does this mean that I have to rename my 'Program Files' directory? If this is the case it will screw up my system, which won't let me change this directory anyway. Then how would I overcome the next directory 'Microsoft Visual etc'?
Does anybody have any answers to my problem?
< DIV>
Thank You very much in advance
Jamie
ps, I saw a couple of posts regarding the error message CL is not a recognised batch file etc. I had this error but solved it by switching CL_ENV to OFF and ensuring that the line - define this if you want to use MSVCDir is moved from the line setting it to OFF

0 Kudos
6 Replies
jamie_z_wallace
Beginner
482 Views
ps i am using IPP version 4.1 on Windows 2000,
0 Kudos
jiing
Beginner
482 Views
I have similar problem as yours.
And had asked the intel, and waiting for their response.

my setting is very similar with yours. except my ipproot is
IPPROOT=C:Program Files1IntelIPP41
IPPROOT=C:Progra~1IntelIPP41

I had tried the above two path, but still has some MSVCDir (I guess)

================================================================

C:Program FilesIntelIPP41ia32_itanium oolscustomdll>nmake

Microsoft Program Maintenance Utility Version 7.10.3077
Copyright (C) Microsoft Corporation. All rights reserved.

nmake /nologo -f customdll.mak
"C:Program FilesMicrosoft Visual Studio .NET 2003Vc7inlink.exe"
/nologo @C:DOCUME~1userLOCALS
~1Temp mE5.tmp
LINK : warning LNK4044: ??????? '/LINK50COMPAT'; ???
(jiing: the upper line means: LINK : warning LNK4044: option can not be
recognized '/LINK50COMPAT'; has been ignored)
LINK : fatal error LNK1181: ??????? 'C:Program FilesMicrosoft Visual
Studio .NET 2003Vc7libuser32.
lib'
(jiing: ??????? means can not open import(input) file )
NMAKE : fatal error U1077: '"C:Program FilesMicrosoft Visual Studio .NET
2003Vc7inlink.exe"' : ??? '0
x49d'
Stop.
NMAKE : fatal error U1077: '"C:Program FilesMicrosoft Visual Studio .NET
2003VC7BIN make.exe"' : ??? '
0x2'
Stop.
(jiing: ??? means returned code)

========================================================

The following is my tools.ini setting, please take a view.
=================================================
[NMAKE]
## init-file to build custom DLL using Intel Integrated Performance Primitives

##-- CL_ENV=OFF - define this if you want to use MSVCDir
CL_ENV=OFF #origianl is ON

!IF "$(CL_ENV)"!="OFF"
## Check if MS CL compiler is accessible, just try it
## It doesn't guarantee that MSVC include and lib will be
## Although ">nul" redirects usage message, logo message is printed
! IF [ CL > nul ] == 0
CL_ENV=ON
! ELSE
CL_ENV=OFF
! ENDIF
!ENDIF

##-- Please customize the following names below

## MS VC home directory.
# You may not define this name if MSVC is accessible
#MSVCDir=C:Program FilesMicrosoft Visual StudioVC98 #origianl
MSVCDir=C:Program FilesMicrosoft Visual Studio .NET 2003Vc7

## Intel IPP install directory
!IF [if exist "%IPPROOT%" (echo IPPROOT: %IPPROOT%) else (exit 1)] == 1
IPPROOT=C:Program FilesIntelIPP41
!ENDIF




## Name of the custom DLLs
DllName=jiing

## Directory name for lib-,map-,obj-files
OutDir=.Lib

## Directory name for dll
DllDir=.Bin


# ###############################################################
# Supported processors.
# px=Generic IA-32 processor,
# a6=Intel Pentium III processor,
# w7=Intel Pentium 4 processor
# t7=Optimized for Pentium 4 processors with Streaming SIMD Extensions 3 (SSE3)
#CpuList=px a6 w7 t7
CpuList= w7

## Name of the test application to build
TestName=ipptwo_jiing

##-- Please customize the names above

## check if MSVC path is accessible
!IF "$(CL_ENV)"=="OFF"
! IF !EXIST ("$(MSVCDir)")
! ERROR Path to MSVC is not found! Check the MSVCDir in tools.ini
! ENDIF
!ENDIF

## Combine names for include and library folders, for compiler and linker

!IF "$(CL_ENV) "=="OFF"
CC="$(MSVCDir)incl.exe"
LINK="$(MSVCDir)inlink.exe"
LIBINC=-I"$(IPPROOT)include" -I"$(MSVCDir)include"
VCLIB="$(MSVCDir)libmsvcrt.lib" "$(MSVCDir)libkernel32.lib"
"$(MSVCDir)libuser32.lib" "$(MSVCDir)libgdi32.lib"

!ELSE
CC=cl.exe
LINK=link.exe
LIBINC=-I"$(IPPROOT)include"
VCLIB=msvcrt.lib kernel32.lib user32.lib gdi32.lib

!ENDIF
0 Kudos
jiing
Beginner
482 Views
I searched the user32.lib and gid32.lib and found their path is in (MSVCDir)platformSDKlib
So I revise the tools.ini as
VCLIB="$(MSVCDir)libmsvcrt.lib" "$(MSVCDir)libkernel32.lib" "$(MSVCDir)platformSDKlibUser32.Lib" "$(MSVCDir)platformSDKlibGdi32.Lib"
and nmake again, but still failed
****So I tried to copy the User32.lib and Gdi32.lib to $(MSVCDir)lib , and it seems to be workable, but leave a error message, but it generated a ipptwo_jiing.obj (although I do not know it's ok or not)

NMAKE : fatal error U1073: ?????? '".Libipptwo_jiing.obj"'
Stop.
(jiing: the upper line in Chinese says
NMAKE : fatal error U1073: do not know how to build '".Libipptwo_jiing.obj"'
)
My OS is winxp, MS Visual Studio .NET 2003
==============================================================
C:Program FilesIntelIPP41ia32_itanium oolscustomdll>nmake

Microsoft Program Maintenance Utility Version 7.10.3077
Copyright (C) Microsoft Corporation. All rights reserved.

nmake /nologo -f customdll.mak
"C:Program FilesMicrosoft Visual Studio .NET 2003Vc7incl.exe" /nologo /c /GB /W3 /O2 -I"C:Progr
am FilesIntelIPP41ia32_itaniuminclude" -I"C:Program FilesMicrosoft Visual Studio .NET 2003Vc7include"
/D "NDEBUG" /D "WIN32" /D "_WINDOWS" -MD /DW7 /Fo".Libjiing.obj" dllmain.c
dllmain.c
"C:Program FilesMicrosoft Visual Studio .NET 2003Vc7inlink.exe" /nologo @C:DOCUME~1userLOCALS
~1Temp m540A.tmp
LINK : warning LNK4044: ??????? '/LINK50COMPAT'; ???
??????? .Libjiing.lib ??? .Libjiing.exp
NMAKE : fatal error U1073: ?????? '".Libipptwo_jiing.obj"'
Stop.
==============================================================

[NMAKE]
## init-file to build custom DLL using Intel Integrated Performance Primitives

##-- CL_ENV=OFF - define this if you want to use MSVCDir
CL_ENV=OFF #???ON

!IF "$(CL_ENV)"!="OFF"
## Check if MS CL compiler is accessible, just try it
## It doesn't guarantee that MSVC include and lib will be
## Although ">nul" redirects usage message, logo message is printed
! IF [ CL > nul ] == 0
CL_ENV=ON
! ELSE
CL_ENV=OFF
! ENDIF
!ENDIF

##-- Please customize the following names below

## MS VC home directory.
# You may not define this name if MSVC is accessible
#MSVCDir=C:Program FilesMicrosoft Visual StudioVC98 #???
MSVCDir=C:Program FilesMicrosoft Visual Studio .NET 2003Vc7
#MSVCDir=C:Progra~1Microsoft Visual Studio .NET 2003Vc7

## Intel IPP install directory
!IF [if exist "%IPPROOT%" (echo IPPROOT: %IPPROOT%) else (exit 1)] == 1
#IPPROOT=C:Program FilesIntelIPP41
IPPROOT=C:Program FilesIntelIPP41ia32_itanium
#IPPROOT=C:Program FilesIntelIPP41
!ENDIF





## Name of the custom DLLs
DllName=jiing

## Directory name for lib-,map-,obj-files
OutDir=.Lib

## Directory name for dll
DllDir=.Bin


# ###############################################################
# Supported processors.
# px=Generic IA-32 processor,
# a6=Intel Pentium III processor,
# w7=Intel Pentium 4 processor
# t7=Optimized for Pentium 4 processors with Streaming SIMD Extensions 3 (SSE3)
#CpuList=px a6 w7 t7
CpuList= w7

## Name of the test application to build
TestName=ipptwo_jiing

##- - Please customize the names above

## check if MSVC path is accessible
!IF "$(CL_ENV)"=="OFF"
! IF !EXIST ("$(MSVCDir)")
! ERROR Path to MSVC is not found! Check the MSVCDir in tools.ini
! ENDIF
!ENDIF

## Combine names for include and library folders, for compiler and linker

!IF "$(CL_ENV)"=="OFF"
CC="$(MSVCDir)incl.exe"
LINK="$(MSVCDir)inlink.exe"
LIBINC=-I"$(IPPROOT)include" -I"$(MSVCDir)include"
#VCLIB="$(MSVCDir)libmsvcrt.lib" "$(MSVCDir)libkernel32.lib" "$(MSVCDir)libuser32.lib" "$(MSVCDir)libgdi32.lib"
VCLIB="$(MSVCDir)libmsvcrt.lib" "$(MSVCDir)libkernel32.lib" "$(MSVCDir)libUser32.Lib" "$(MSVCDir)libGdi32.Lib"

!ELSE
CC=cl.exe
LINK=link.exe
LIBINC=-I"$(IPPROOT)include"
VCLIB=msvcrt.lib kernel32.lib user32.lib gdi32.lib

!ENDIF
0 Kudos
Ying_S_Intel
Employee
482 Views
0 Kudos
jamie_z_wallace
Beginner
482 Views
Hi
Thank you for your code.
I used it to create my own .h file and its .cpp file. This worked fine on the development PC
where Visual Studio.NET and Intel IPP are installed.
When I tried it on a target system it would not work. I got the error message
"No DLL's found in waterfall procedure"
To try and put the DLL files in the corerct place I tried the runtime installer. This now
causes the PC system to crash when I run my project with the error message "STOP:
some memory references PROCESS_HAS_LOCKED_PAGES"
I have to remove the ipp20 directory from system32 to stop the system from crashing, but it reverts back to the
waterfall error.
Another confusing thing is that I am using dual Xeon (not EMT64) processors, I am using the Itanium version of IPP
and the runtime installer adds the Pentium 4 libraries.
Is there any further ideas?
Thank You
Jamie
0 Kudos
jamie_z_wallace
Beginner
482 Views
Additionally I have used the FAQ section to try and solve the "No DLL's were found in the waterfall procedure" error. I looked at all four possible solutions. Part A had already been performed, I tried B and this produced the error that I get when i run the runtime installer, as with part C
Thank You
Jamie
0 Kudos
Reply