View Full Version : Compiling AviSynth
WarpEnterprises
2nd January 2003, 22:10
Could someone please summarize what is necessary to compile AviSynth?
I've installed VC6, SP5, ProcessorPack.
There is still an error regarding DirectShow.
Do I have to download some whole SDKs or are only some files needed?
sh0dan
2nd January 2003, 23:11
Unfortunately it seems to require both the DirectX 8.1 SDK and the newest platform SDK, which are both rather big.
WarpEnterprises
7th January 2003, 23:13
Can you give me a hint what the "newest platform SDK" is?
At MS it seems to me it is only a combination of SDK's including DX8.1 which would then not be necessary.
Sadly DX8.1 SDK is not enough - now it compiles but there are linker errors (non-resolved external symbols, regarding ACM it seems).
Some clues for me? Or are there some settings necessary for the project I am not aware of?
sh0dan
7th January 2003, 23:22
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
Install the Core SDK and DirectX SDK. You can de-select download of 64bit stuff (you can also do fine without samples and documentation), but Choosing Downloads/Install from the menu at the top.
If you take only "Build environment", you only have to download about 37mb.
scmccarthy
7th January 2003, 23:51
'only' 37mb hehe.
JohnMK
8th January 2003, 06:24
So how easy is it to build this thing with VC6 SP5 w/ ICL7? Does the code come with a project file that would streamline the process? I'd love to compile with P4-optimized switches and see if there's any difference.
WarpEnterprises
8th January 2003, 08:31
I will tell my stepwise progress.
The project file is I think a VC7-file, no VC6. But I only added all files to an empty DLL project and at least compiling worked.
Let's see what happens with the complete core SDK... (just downloading 342MB - still faster as 37MB on 56k)
sh0dan
8th January 2003, 09:18
Load the .dsw into VC6. AviSynth is being developed on VC6, so you shouldn't need to create a new project.
WarpEnterprises
8th January 2003, 12:49
Where is such a DSW? (at sourceforge there is nothing, only a "hidden" quite old DSW and a "vcproj" file).
sh0dan
8th January 2003, 13:49
When you do a complete checkout there is both a dsw and a dsp. Neither of them should be hidden.
Bidoche
8th January 2003, 14:42
I got these dsw files with a checkout, and VC6 has no problem dealing with them.
But I got errors with the asm file when building, does the Core SDK solve this ?
WarpEnterprises
8th January 2003, 14:56
are we talking about this file:
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/avisynth2/avisynth/Attic/avisynth.dsw
sh0dan
8th January 2003, 15:20
Hmmm.. strange - but doesn't VC6 generate a dsw, when you open the project file, avisynth.dsp ?
WarpEnterprises
9th January 2003, 11:35
Ok, my mistake: .DSW is the workspace file, .DSP the project file which is ok from SF.
As you mentioned, both the core SDK + DirectX SDK are necessary
What is necessary too and was nowhere mentioned when setting up the project from scratch:
* include the convert_a.asm file and set up the assembler for this file (this is logical)
* add some lib files to the project (penter.lib msacm32.lib quartz.lib ddraw.lib amstrmid.lib vfw32.lib version.lib user32.lib winmm.lib) - how do you know that these files are necessary?
* (maybe) setting to PentiumPro code generation
With these changes it compiles.
Don't have checked if working flawlessly.
sh0dan
9th January 2003, 15:16
1) convert_a.asm is included in the project file, and is compiling fine, when you have the preprocessor pack 5 installed. No user action required here if your installation is ok.
2) These lib files are in the platform SDK, and if you read the documentation for these, it says you must add the lib directories in Tools/Options/Directories - no need to add them manually. You must have DirectX and Core SDK headers/libraries here, and move them to the top (I cannot remember the exact order of these two).
3) This is stored in the .dsp file, so you get the optimizations from the CVS. Be careful - enabling "Maximize speed" may break temporalsoften - it seems to cause a bug in the experimental cache.
WarpEnterprises
9th January 2003, 15:42
ad 2) I understand that I have to add the path to the lib files, but isn't it necessary to add the libs in the project properties (under the c++ tab)? I did mean _this_ action, not copying the LIB-files.
So from where comes the information that those LIB's are used?
Only the linker complains about missing symbols.
Maybe I simply don't know enough what a .LIB file is :(
scmccarthy
9th January 2003, 18:14
Maybe I simply don't know enough what a .LIB file is
I hope you don't mind if I point out some basics of compiling?
First, the lib file is only added by the linker. That means if you tried compiling without linking, you would not get an error if you did not have the libs you need. I think there are two catagories of libs: ones that the linker looks for for any c++ project and ones that the program calls for. I am not sure of that, but it doesn't matter, we're only focusing on the specific ones for each project.
lib files contain methods, fuctions, procedures, or whatever you want to call them, that are called by the program. The linker only has to read the object files to know the names of the needed lib files. The only thing it doesn't know is where the lib files are. So all you need to do in this case is put the lib folder for the Platform SDK and DirectX SDK on the search path for the linker. There is no need to name each lib file it is going to need.
So my main point is to explain why the linker only needs the search path to the lib directories it will need and not the names of the lib files themselves.
Of course, the compiler still needs to know which libs contain the code for the procedures called. I'm guessing that information is in the sources.
Stephen
WarpEnterprises
11th January 2003, 22:57
Thx, after reading a little bit MSDN I think I get it now.
("explicit and implicit linking")
1.You need a LIB file if you link to a DLL statically (implicit). This is the way AviSynth calls OS DLLs. Each function call (e.g. to ACM) aims at a DLL and each of those DLLs must have a LIB. So only complete knowledge of the source will tell you which DLLs are involved as they are not written somewhere. And the header files defining the functions don't have always simply the same name as the DLL.
2.If the DLL is linked explicit / dynamically you don't need a LIB, the functions are returned as pointers. This is a little more complex to program, it seems, but this is the way AviSynth calls the plugins. It has to be that way because the name of the DLL is of course not fixed when compiling AviSynth.
scmccarthy
12th January 2003, 01:45
@WarpEnterprises
I think you need the lib file for the os dlls whether you link to them dynamically or statically. It you link to it dynamically, you still need the address of the function within the dll you are calling. Unlike the little dll we write for AviSynth or even the AviSynth dll itself, a dll like kernel32.dll has multiple indepentant programs. The calling program needs the address of the specific program being called within the dll. That information is given to the calling program by the linker through kernel32.lib. So I believe that you always need the lib file for an os dll whether you link to it statically or dynamically.
My guess is that AviSynth is able to load its own dlls from a script mainly because there is a set starting place for the one program within each dll.
That is great work though, and I wonder if static and implicit are not really synonymous. So that you are half right.
Stephen
WarpEnterprises
8th April 2003, 00:18
help needed again...
AviSynth won't compile anymore, there are many linker errors (mainly imagelib, softwire) regardless which configuration I use.
Is there something I must do except using the .DSP file?
sh0dan
8th April 2003, 17:46
The new dsp file should contain the new libraries - what's in your distrib/lib directory?
WarpEnterprises
8th April 2003, 21:54
found the cause.
There still is a warning about a conflict witg LIBC, but it compiles.
When I started a Version() script with VD, it wrote "cannot determine filetype" (thought it was a bad compile) - instead the lib's AND the DLL's (libjpeg.dll, libpng13.dll) have to be present.
(wanted to add Chr, Spline, Time. Let's see if I manage it)
Richard Berg
15th April 2003, 07:34
The only required file with the latest CVS binary should be devil.dll (libs are always compile-time only). You're right about the meaning of that VDub error message, though -- perhaps we should stick it in a FAQ somewhere?
WarpEnterprises
17th April 2003, 22:52
Which runtime library is the right one for a plugin / does it matter / when and how?
- singlethreaded
- multithreaded
- multithreaded DLL
trbarry
27th April 2003, 04:02
Could anyone list the order of the libs and includes needed to compile Avisynth?
I installed XP and re-installed VS6 and lost all those settings.
Even just compiling my filters I get an undefined in _aligned_malloc()
I remember this error depends upon the order of the libs or includes since older versions of whaterver the storage module is don't have it.
But some of my filters will crash on P4's if I don't use that.
- Tom
neuron2
27th April 2003, 05:36
You need the Platform SDK installed.
trbarry
27th April 2003, 05:57
Darn.
I could have sworn I pointed both libs and includes at both the DXSDK and the Platform SDK (from Win/Me) before posting, in some order. I just wasn't sure which one had the _aligned_malloc().
But I'll go check again since half of my stuff doesn't compile yet.
- Tom
trbarry
27th April 2003, 06:47
Okay, never mind.
I had not reinstalled the processor pack yet. I guess that's where the _aligned_malloc() comes from.
Google is your friend. ;)
- Tom
IanB
16th June 2003, 02:12
Okay guys,
What have I got wrong?
I've installed VS 6 SP5 + Processor pack, DX 8.1 & Feb 2003 Platform SDK. Great I can even build a VirtualDub.
Now I try to build AviSynth.dll from the source tarballs (2.08, 2.50 & recent CVS) without mods and get the following error(s) :-
amstrmid.lib(strmiids.obj) : error LNK2005: _CLSID_TVEFilterStatsProperties already defined in source.obj
amstrmid.lib(strmiids.obj) : error LNK2005: _CLSID_TVEFilterCCProperties already defined in source.obj
amstrmid.lib(strmiids.obj) : error LNK2005: _CLSID_TVEFilterTuneProperties already defined in source.obj
.....
amstrmid.lib(strmiids.obj) : error LNK2005: _MEDIATYPE_Video already defined in source.obj
amstrmid.lib(strmiids.obj) : error LNK2005: _MEDIASUBTYPE_None already defined in source.obj
amstrmid.lib(strmiids.obj) : warning LNK4006: _CLSID_TVEFilterStatsProperties already defined in source.obj; second definition ignored
amstrmid.lib(strmiids.obj) : warning LNK4006: _CLSID_TVEFilterCCProperties already defined in source.obj; second definition ignored
amstrmid.lib(strmiids.obj) : warning LNK4006: _CLSID_TVEFilterTuneProperties already defined in source.obj; second definition ignored
....
amstrmid.lib(strmiids.obj) : warning LNK4006: _MEDIATYPE_Video already defined in source.obj; second definition ignored
amstrmid.lib(strmiids.obj) : warning LNK4006: _MEDIASUBTYPE_None already defined in source.obj; second definition ignored
Creating library Release/avisynth.lib and object Release/avisynth.exp
Release/avisynth.dll : fatal error LNK1169: one or more multiply defined symbols found
Error executing link.exe.
avisynth.dll - 326 error(s), 325 warning(s)
Yes the GUID's are being initted twice. I can hack "source.cpp" to remove "#include <initguid.h>" (which is line 666 :devil: in the 2.08 source) and get clean and working builds.
But thats not the point of the exercise.
How do I build the same way you do, without hacking the source?
I know I'll kick myself when I find the fix.
Regards
IanB
sh0dan
17th June 2003, 21:58
You should probably adjust you libraries. My current setup:
Tools/Options/Directories/Libraries (http://cultact-server.novi.dk/kpo/avisynth/libs.png)
and headers just for the record.
Tools/Options/Directories/Include (http://cultact-server.novi.dk/kpo/avisynth/include.png)
Remember - the order of the headers/libraries matter!
Also remember to "Recompile all" after changing these directories.
There is usually some black magic involved in getting AviSynth (and ff***) to compile ;) However I don't seem to remember any nasty copy/overwrite stuff this time
IanB
18th June 2003, 14:40
@sh0dan
Thanks, getting the order compatible does the trick. :D
For future reference (in text) Include's and Lib's :-
1. DXSDK
2. Microsoft SDK
3. VC98
4. VC98\MFC
5. VC98\ATL
IanB
MrPiercer
22nd June 2003, 20:55
Originally posted by sh0dan
Unfortunately it seems to require both the DirectX 8.1 SDK and the newest platform SDK, which are both rather big.
So, now I'm downloading the DirectX 9 SDK, but what exactly is the "Platform SDK" you're talking about here?
I have the complete Visual Studio .NET (7.0) installed, and I haven't installed anything else than the defaults from the CD distribution. Is the "Platform SDK" some 3:rd party stuff, or what is it, exactly?
Later! :)
Anders.
IanB
23rd June 2003, 05:17
Originally posted by MrPiercer
So, now I'm downloading the DirectX 9 SDK, but what exactly is the "Platform SDK" you're talking about here?
I have the complete Visual Studio .NET (7.0) installed, and I haven't installed anything else than the defaults from the CD distribution. Is the "Platform SDK" some 3:rd party stuff, or what is it, exactly?
Later! :)
Anders. MrPiercer,
You only need DirectX 8.1 (let this thread know how it compiles with DX9)
"Microsoft Platform SDK - February 2003"
"English Disc 0004.7 May 2003"
Is the title from the May MSDN release.
The CD is a Web tree clone so I guess it must be available @ msdn.microsoft.com somewhere. The base SDK is over 110 Mb!!! bTry http://www.microsoft.com/msdownload/platformsdk/sdkupdate/ or search for "Platform SDK" on microsoft.com
IanB
MrPiercer
24th June 2003, 17:36
Originally posted by IanB
MrPiercer,
You only need DirectX 8.1 (let this thread know how it compiles with DX9)
It compiled perfectly with Visual Studio .NET 7.0 and both the accompanying MS compiler and with Intel C++ 7.1 Enterprise compiler. I used the Core SDK from MSDN downloaded 2003-03-23 and the DirectX 9.0 SDK from MSDN, same date.
I also tried with compiler flag optimized for Pentium 4.
All the various build logs and resulting DLL files are posted at my website, found on http://www.norrbring.biz/AviSynth
Later!
Anders
IanB
25th June 2003, 16:24
Anders,
Geez, bit lame the Intel compiler can't handle proper shifting for __int64's
> layer.cpp(403): warning #63: shift count is too large
> __int64 thresh=0x0000000000000000 | ((T & 0xFF) <<48)| ((T & 0xFF) <<32)| ((T & 0xFF) <<16)| (T & 0xFF);
> ^
> layer.cpp(403): warning #63: shift count is too large
> __int64 thresh=0x0000000000000000 | ((T & 0xFF) <<48)| ((T & 0xFF) <<32)| ((T & 0xFF) <<16)| (T & 0xFF);
> ^
But, it's dead right about this code, opps!
> focus.cpp
> focus.cpp(756): warning #186: pointless comparison of unsigned integer with zero
> if (luma_thresh>=0) {planes[c++] = PLANAR_Y; planes[c++] = luma_thresh;}
> ^
> focus.cpp(757): warning #186: pointless comparison of unsigned integer with zero
> if (chroma_thresh>=0) { planes[c++] = PLANAR_V;planes[c++] =chroma_thresh;planes[c++] = PLANAR_U;planes[c++] =chroma_thresh;}
^
Swings and roundabouts....
IanB
MrPiercer
25th June 2003, 16:46
Originally posted by IanB
Anders,
Geez, bit lame the Intel compiler can't handle proper shifting for __int64's
But, it's dead right about this code, opps!
Swings and roundabouts....
IanB
Heehe... :) Well, I haven't done squat about ANY other setting than shifting btw. compilers and PII / P4 optimization in the project properties in VS. Perhaps some other settings would help out? I don't know, I'm certainly no wiz with the Intel compiler, I got it just last week... (And YES, I hate manuals!)
Anyway, is there something I can do to help out, just let me know!
One most disturbing thing I noticed is that if I use VS' "Configuration manager" to add a config other than the "release", "debug" and "profile" (Well, I made a new, called it "P4" and chose "Copy settings" and copied from "Release") then the project won't compile!? Are there any directory paths hardcoded in the code instead of using VS' variables?
Later! :cool:
Anders.
sh0dan
30th June 2003, 10:19
Originally posted by IanB
But, it's dead right about this code, opps!
> focus.cpp
> focus.cpp(756): warning #186: pointless comparison of unsigned integer with zero
> if (luma_thresh>=0) {planes[c++] = PLANAR_Y; planes[c++] = luma_thresh;}
> ^
> focus.cpp(757): warning #186: pointless comparison of unsigned integer with zero
> if (chroma_thresh>=0) { planes[c++] = PLANAR_V;planes[c++] =chroma_thresh;planes[c++] = PLANAR_U;planes[c++] =chroma_thresh;}
^
Swings and roundabouts....
IanB
Good one ;) I'll fix!
I should probably also have a look at the int64 -> int casts - most likely all of them are audio functions. "audio.cpp" should have another workover one of these days.
geoffwa
22nd July 2003, 13:46
On a related compiling note, when I try to compile code for a filter that includes the isse_scenechange assembler functions used in Avisynth I get the following error:
psadbw mm0,mm1
warning C4405 (http://msdn.microsoft.com/library/en-us/vccore/html/C4405.asp): 'mm0' : identifier is reserved word
error C2400 (http://msdn.microsoft.com/library/en-us/vccore/html/C2400.asp): inline assembler syntax error in 'opcode'; found 'mm0'
(using Visual C++ SP5, Processor Pack, Feb '03 Core SDK)
Switching the processor build target in my project settings to Pentium Pro or Blend doesn't have any effect. Can someone point out where I'm going wrong?
tempetai
3rd August 2003, 20:35
Hi all,
I have installed SP5, Processor Pack and complete Platform SDK. But, when I tried to compile AVISYNTH, I got this error:
error C2065: 'IIPDVDec' : undeclared identifier
Can anyone tell me, what I have missed here.
thanks.
WarpEnterprises
4th August 2003, 06:52
Did you install DirectX SDK?
tempetai
4th August 2003, 10:36
Originally posted by WarpEnterprises
Did you install DirectX SDK?
OK... This is the thing that I have missed... Thanks WarpEnterprises...
tempetai
5th August 2003, 19:38
I have installed DXSDK, but now I got these errors:
Linking...
Creating library Profile/avisynth.lib and object Profile/avisynth.exp
softwire_helpers.obj : error LNK2001: unresolved external symbol "public: void * __thiscall SoftWire::Assembler::acquire(void)" (?acquire@Assembler@SoftWire@@QAEPAXXZ)
.....
avisynth.dll - 79 error(s), 0 warning(s)
Please help.
WarpEnterprises
6th August 2003, 07:08
I think your include path doesn't include the LIB directory in the AviSynth sources (there are nowadays some LIBs necessary - Softwire, image reader libs,...)
tempetai
6th August 2003, 10:13
I've add the avisynth\distrib\include and lib into directories tab. But still no different. But I notice some improvement when I put softwire.lib and devil.lib into link tab of project preference. The error turn to 65 from 79. But still a lot of error.
Please help.
tempetai
7th August 2003, 03:27
What is the active configuration that you guys is using? Mine was defaulted to Win32 Profile. Does this make any different?
Sorry to ask. I'm very new in VC++ environment.
IanB
7th August 2003, 08:34
Originally posted by tempetai
What is the active configuration that you guys is using? Mine was defaulted to Win32 Profile. Does this make any different?
Sorry to ask. I'm very new in VC++ environment.
Profiles simply provide a convienient means to select build options, like "/D DEBUG". Look under "Project Settings" to see what options are actually part of each profile.
The standard profiles are :-
"Win32 Debug" does a full debug build and uses debug versions of the libraries. (Maximum checking, slower, development)
"Win32 Profile" does a release style build but links with profiling libraries. (check with Sh0dan how to make use of these tools)
"Win32 Release" does a full release build and uses full release grade libraries. (Maximum speed, for normal use)
IanB
tempetai
8th August 2003, 03:31
I'm now succesfully compiling the avisynth in any configuration. I just have to make sure that the softwire.lib and devil.lib are in the list and set the link option to /NODEFAULTLIB:"LIBC".
Softwire is cool...
sh0dan
8th August 2003, 09:54
@IanB: Actually I have never used the "Profile Configuration". For profiling, it is possible to use the Release builds. I don't know who created the Profile Conf, but it just left it there, if anyone uses it.
It should probably just be removed, unless someone objects.
Yes - SoftWire rocks!
tempetai
8th August 2003, 10:47
I have no objection... Cause me two days trouble...
WarpEnterprises
8th August 2003, 13:29
add some hours from me ...
WarpEnterprises
22nd September 2003, 22:10
We should mention here what sh0dan wrote as CVS comment:
2003/9/18 16:2:48 - Additional compilation requirements: DirectX Directshow baseclasses, found in the samples directory - add to both library and header directory.
With "samples directory" the directory
DXF\DXSDK\samples\Multimedia\DirectShow\BaseClasses
in the DX-SDK is meant ( I was desparately seeking in the CVS directories :) )
But anyhow: it won't compile, there are many warnings and some LINKER errors:
strmbase.lib(dllentry.obj) : error LNK2005: _DllGetClassObject@12 bereits in main.obj definiert
strmbase.lib(dllentry.obj) : error LNK2005: _DllCanUnloadNow@0 bereits in main.obj definiert
strmbase.lib(dllentry.obj) : warning LNK4006: _DllGetClassObject@12 bereits in main.obj definiert; zweite Definition wird ignoriert
strmbase.lib(dllentry.obj) : warning LNK4006: _DllCanUnloadNow@0 bereits in main.obj definiert; zweite Definition wird ignoriert
Bibliothek Release/avisynth.lib und Objekt Release/avisynth.exp wird erstellt
LINK : warning LNK4098: Standardbibliothek "LIBC" steht in Konflikt mit anderen Bibliotheken; /NODEFAULT:Bibliothek verwenden
strmbase.lib(dllsetup.obj) : error LNK2001: Nichtaufgeloestes externes Symbol "class CFactoryTemplate * g_Templates" (?g_Templates@@3PAVCFactoryTemplate@@A)
strmbase.lib(dllentry.obj) : error LNK2001: Nichtaufgeloestes externes Symbol "class CFactoryTemplate * g_Templates" (?g_Templates@@3PAVCFactoryTemplate@@A)
strmbase.lib(dllsetup.obj) : error LNK2001: Nichtaufgeloestes externes Symbol "int g_cTemplates" (?g_cTemplates@@3HA)
strmbase.lib(dllentry.obj) : error LNK2001: Nichtaufgeloestes externes Symbol "int g_cTemplates" (?g_cTemplates@@3HA)
Any ideas? (I added the paths of the mentioned .h and .cpp files as suggested)
sh0dan
24th September 2003, 17:05
Yeah - I had troubles with that one too. I seem to remember I fould an old strmbase.lib (strmbasd.lib in debug mode) somewhere else in my library path. Be sure to only have the one in
DXSDK\samples\Multimedia\DirectShow\BaseClasses\Debug
and
DXSDK\samples\Multimedia\DirectShow\BaseClasses\Release
referenced, and be sure to add both to your Tools/Options/Directories/Libraries I hate the black voodoo with C compilers - especailly linker errors. Unfortunately I can only say that it also took me a few hours to get this compiling on my second machine.
:angry:
WarpEnterprises
2nd October 2003, 17:54
I must be blind but I don't find the LIBs, only .H and .CPP.
Could you put those LIBs somewhere,pls. (if it is not against some rules).
sh0dan
21st October 2003, 20:53
You need to compile the project in the BaseClasses project in Release and debug mode - this will produce the libraries.
WarpEnterprises
13th November 2003, 23:11
has someone else compiled a recent AviSynth version?
I made those libs but still no luck.
now it complains about missing baseclasses in ctlutil.h and many more things.
I can understand that sh0dan can't remember all steps if it is working but everbody else should have the same problem.
I made a clean setup of my system and the problems were quite the same.
ARDA
14th November 2003, 00:03
@ WarpEnterprises
@ sh0dan
quote:
-------------------------------------------------------
has someone else compiled a recent AviSynth version?
-------------------------------------------------------
Yes I've compiled but with some difficulties too.
select in tools - Directories -Library files -
C:\PROGRAM FILES\MICROSOFT SDK\SAMPLES\MULTIMEDIA\DIRECTSHOW\BASECLASSES\RELEASE
when you compile in release mode...etc
I've got a usefull dll but I've still a lot of warnings;
mainly with avisynth_c.cpp
35 warning C4273:: inconsistent dll linkage.dllexport assumed.
2 MICROSOFT SDK\SAMPLES\MULTIMEDIA\DIRECTSHOW\BASECLASSES\
combase.h(245) : warning C4717: '_imp__InterlockedIncrement'
: recursive on all control paths, function will cause runtime stack overflow
and
avisynth_c.cpp(301) : warning C4700:
local variable 'val' used without having been initialized.
I've searched in google for these warnings and there are a lot of information.
But I must confess I was too lazy to read and look for the solution. And probably
it is a basic matter I don't know
Once more I hope sh0dan could come in our help to understand why all these warnings.
Oh! THANKS AGAIN sh0dan ! for last released !
Thanks in advance ARDA
WarpEnterprises
17th November 2003, 00:14
With the latest CVS I cannot even get to linking.
- I compiled the strmbase.lib / strmbasd.lib
- I added the directories to VC
- compiling avi_source.cpp works
- compiling directshow_source.cpp won't work, the first errors come from the <streams.h> include:
c:\programme\microsoft sdk\samples\multimedia\directshow\baseclasses\wxutil.h(530) : error C2061: Syntaxfehler : Bezeichner 'DWORD_PTR'
c:\programme\microsoft sdk\samples\multimedia\directshow\baseclasses\ctlutil.h(437) : error C2504: 'IBasicVideo2' : Basisklasse undefiniert
as if there is some header files missing.
Am I right that at this point the LIB is not even used?
sh0dan
17th November 2003, 10:46
Originally posted by ARDA
@ WarpEnterprises
@ sh0dan
quote:
-------------------------------------------------------
has someone else compiled a recent AviSynth version?
-------------------------------------------------------
Yes I've compiled but with some difficulties too.
select in tools - Directories -Library files -
C:\PROGRAM FILES\MICROSOFT SDK\SAMPLES\MULTIMEDIA\DIRECTSHOW\BASECLASSES\RELEASE
when you compile in release mode...etc
I've got a usefull dll but I've still a lot of warnings;
mainly with avisynth_c.cpp
35 warning C4273:: inconsistent dll linkage.dllexport assumed.
2 MICROSOFT SDK\SAMPLES\MULTIMEDIA\DIRECTSHOW\BASECLASSES\
combase.h(245) : warning C4717: '_imp__InterlockedIncrement'
: recursive on all control paths, function will cause runtime stack overflow
and
avisynth_c.cpp(301) : warning C4700:
local variable 'val' used without having been initialized.
I've searched in google for these warnings and there are a lot of information.
But I must confess I was too lazy to read and look for the solution. And probably
it is a basic matter I don't know
Once more I hope sh0dan could come in our help to understand why all these warnings.
Oh! THANKS AGAIN sh0dan ! for last released !
Thanks in advance ARDA
Yes "avisynth_c" added a bunch of warnings. I think I'll have a look soon - and also to fix the crash-on-unload with SmartDecimate. None of the warnings mean anything.
The Directshow warning (_imp__InterlockedIncrement) is unavoidable, but doesn't mean anything. I guess it could be avoided using a #pragma.
@WarpE: I haven't experienced that problem (and you're right - only the header files are used at this stage). I sound quite incredible that it doesn't know what DWORD_PTR is.
WarpEnterprises
18th November 2003, 23:37
It works!
Here is what I did.
- there are some .H files in the MS Visual Studio AND the MS SDK directory, with the ones in the SDK beeing the newer and intended.
- I removed the ...Visual Studio... dirs from the header directories (extras/options...) but some .H-files are NOT present in the SDK
==>
There have to be BOTH entries but the SDK paths and the path to ...SDK\SAMPLES\MULTIMEDIA\DIRECTSHOW\BASECLASSES\DEBUG must come BEFORE the ...Visual Studio paths (for both compiling strmbasd.lib AND AviSynth) to have higher search priority.
Then all you have to do is hoping that all newer .H and .LIB are present and no old one is accidently taken.
My paths are then:
header directories:
C:\Programme\Microsoft SDK\Include
c:\PROGRAMME\MICROSOFT SDK\SAMPLES\MULTIMEDIA\DIRECTSHOW\BASECLASSES
C:\Programme\Microsoft Visual Studio\VC98\INCLUDE
C:\Programme\Microsoft Visual Studio\VC98\MFC\INCLUDE (needed. What is MFC in AviSynth?)
C:\Programme\Microsoft Visual Studio\VC98\ATL\INCLUDE (not needed for AviSynth)
library directories:
C:\Programme\Microsoft SDK\Lib
c:\PROGRAMME\MICROSOFT SDK\SAMPLES\MULTIMEDIA\DIRECTSHOW\BASECLASSES\DEBUG
C:\Programme\Microsoft Visual Studio\VC98\LIB
C:\Programme\Microsoft Visual Studio\VC98\MFC\LIB (not needed for AviSynth)
Hope this helps and is reproducable.
scmccarthy
30th January 2004, 18:43
WarpEnterprises wrote two interesting questions that were never answered as far as I can tell on this thread. Which runtime library is the right one for a plugin / does it matter / when and how? and What is MFC I use cl.exe /MT to link with libcmt.lib and link.exe /NODEFAULTLIB:msvcrt /NODEFAULTLIB:libc which prevents linking with msvcrt.lib and libc.lib. Otherwise avisynth wants to link with all three versions of the common runtime library. The alternative is to use /FORCE:MULTIPLE to force linking with mutiple versions of the lib functions.
If I compile strmbase.lib with /MT, my linker wants me to use the same threading scheme with avisynth.
Is this right, or do different modules within avisynth need to link with different versions of the runtime?
I would like to see this sticky continue to grow. New compilation issues that crop up on every new version of avisynth. Yet nothings been discussd on this thread since lase November. For instance, I had to comment out two lines in the code to get it to compile://GetSampleEnumPins::GetSampleEnumPins(GetSample* _parent, int _pos); //HRESULT __stdcall GetSampleEnumPins::Next(ULONG cPins, IPin** ppPins, ULONG* pcFetched); in directshow_source.h. I don't believe it matters whether you comment it out of the header or the code file, only that it does not get stated twice.
Finally, are the two files avisynth.opt and avisynth.ncb somehow nessesary to properly compile avisynth? Since I only use the commandline tools, cl.exe, ml.exe, rc.exe, and link.exe, I am not sure whether those files are being used in my compilation. This works fine for standalone filters, but I am still not sure if it works for avisynth itself.
Stephen
esby
19th February 2004, 00:28
I tried to compile avs 2.54 (and suceeded after a ...long time)
If that can help other people,
I'll resume what the thread is saying,
more or less...
(maybe someone should put the infos in the doc?)
relevant information for compiling with VC6
* Install visual studio (containing VC6)
edit: warning the links are for the US version of Visual Studio,
if you are using a non US version, get the specific version...
* Install Visual Studio SP5 (130mb)
http://download.microsoft.com/download/vstudio60ent/SP5/Wideband-Full/WIN98Me/EN-US/VS6sp5.exe
* Install Visual C++ Processor Pack (1mb)
check http://download.microsoft.com/download/vb60ent/Update/6/W9X2KXP/EN-US/vcpp5.exe for links
EDIT: with 2.55 version, the following is no longer needed...
* Install Platform SDK (feb 2003) (31mb for core sdk - minimal)
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
* Install DirectX 8.1 SDK (160mb)
http://www.microsoft.com/downloads/release.asp?ReleaseID=33706
And then you are all good for the needed download...
* Recompile \<DXSDK directory >\samples\Multimedia\DirectShow\BaseClasses\baseclasses.dsp
in order to avoid a nasty bug (in release & debug mode)
* Go in VC++, Tools, options, Directories :
There check .h (headers) section:
a working path order is :
...DXSDK\SAMPLES\MULTIMEDIA\DIRECTSHOW\BASECLASSES
...DXSDK\INCLUDE
...MICROSOFT SDK\INCLUDE
...Microsoft Visual Studio\VC98\INCLUDE
...Microsoft Visual Studio\VC98\MFC\INCLUDE
...Microsoft Visual Studio\VC98\ATL\INCLUDE
next step go in Library :
...DXSDK\SAMPLES\MULTIMEDIA\DIRECTSHOW\BASECLASSES\DEBUG
...DXSDK\SAMPLES\MULTIMEDIA\DIRECTSHOW\BASECLASSES\RELEASE
...DXSDK\lib
...Microsoft SDK\Lib
...Microsoft Visual Studio\VC98\Lib
...Microsoft Visual Studio\VC98\Lib
...Microsoft Visual Studio\VC98\MFC\LIB
then you might be able to compile it :)
I hope it will help somebody...
esby
sh0dan
20th February 2004, 12:47
Just wanted to add a note, that from 2.55 it should be considerably easier to compile AviSynth, as the DirectShow stuff has been moved to a separate plugin.
This eliminates all DirectX stuff and probably the Platform SDK.
You can do a CVS checkout if you want the new code.
esby
11th March 2004, 14:47
Just checked with removing PSDK and not installing DirectX 8.1 SDK here...
2.55 compiled fine on this computer.
Nice work sh0dan :)
esby
scmccarthy
23rd March 2004, 15:43
I thought I'd add something here, I can confirm that the DXDSK and the Platform SDK are not needed anymore. Until now, all we needed from the processor pack was ml.exe for the assembler module. I didn't need it because I used the one from the DDK SDK that I have. There are three header files that are needed now that were not needed before and since they have no corresponding libs all I needed to solve the problem was download them from the internet. They are Intel files emmintrin.h, xmmintrin.h, and mmintrin.h.
Maybe they are part of the Intel compiler, but in that case a lot more people would have trouble.
Normally there would be a corresponding link error following an include error and this would not be enough, but in this case it is. As the names imply they probably define types that make it easier to use mmx or sse2 without out writing in assembler.
This all started because audio.cpp now includes emmintrin.h.
Stephen
esby
23rd March 2004, 23:05
Getting the processor pack is not really a problem,
Its size is inferior to 2mb.
What was dreadful was to get DSDK pack, just to compile one filter...
(and if people did like i did, getting the wrong version pack, it's worse :)
esby
PS: I have no intel compiler installed here, so ... :)
The processor pack is the stumbling block for those of us without access to the bigs boys version of MS VC++.
But then again, maybe if we can't pay then we shouldn't be allowed to play in the big game stakes :p
regards
Simon
esby
24th March 2004, 00:08
damn, so true...
never noticed this 'block' indeed...
then I am wondering if providing the missing file(s) is legal or not...
esby
scmccarthy
30th March 2004, 07:49
After a successful compile, I get an error when trying to play the avs file. Is there a step missing when installing AviSynth.dll or is it a bad compile?
Stephen
stickboy
30th March 2004, 10:46
Did you compile the Release or Debug configuration? I had trouble with the Debug configuration.
scmccarthy
30th March 2004, 17:23
Release, I've been wondering if debug were standard.@echo off
set path=D:\WINDDK\2600\bin\x86;%PATH%
echo compiling:
cl.exe /G6 /MD /W3 /wd4005 /GX /O2 /Ob2 /D "NDEBUG" /D "INC_OLE2" /D "STRICT" /D "WIN32" /D "_WIN32" /D "_MT" /D "_DLL" /D "_MBCS" /D "_USRDLL" /D "AVISYNTH_C_EXPORTS" /Fr /Yu"stdafx.h" /Yc"stdafx.h" /FD /Gs /GF /c .\stdafx.cpp
cl.exe /nologo /G6 /MD /W3 /wd4005 /GX /O2 /Ob2 /D "NDEBUG" /D "INC_OLE2" /D "STRICT" /D "WIN32" /D "_WIN32" /D "_MT" /D "_DLL" /D "_MBCS" /D "_USRDLL" /D "AVISYNTH_C_EXPORTS" /Fr /Yu"stdafx.h" /FD /Gs /GF /c .\core\parser\*.cpp
ren .\core\main.cpp main.c
cl.exe /nologo /G6 /MD /W3 /wd4005 /GX /O2 /Ob2 /D "NDEBUG" /D "INC_OLE2" /D "STRICT" /D "WIN32" /D "_WIN32" /D "_MT" /D "_DLL" /D "_MBCS" /D "_USRDLL" /D "AVISYNTH_C_EXPORTS" /Fr /Yu"stdafx.h" /FD /Gs /GF /c .\core\*.cpp
ren .\core\main.c main.cpp
cl.exe /nologo /G6 /MD /W3 /wd4005 /GX /O2 /Ob2 /D "NDEBUG" /D "INC_OLE2" /D "STRICT" /D "WIN32" /D "_WIN32" /D "_MT" /D "_DLL" /D "_MBCS" /D "_USRDLL" /D "AVISYNTH_C_EXPORTS" /Fr /FD /Gs /GF /c .\core\main.cpp
cl.exe /nologo /G6 /MD /W3 /wd4005 /GX /O2 /Ob2 /D "NDEBUG" /D "INC_OLE2" /D "STRICT" /D "WIN32" /D "_WIN32" /D "_MT" /D "_DLL" /D "_MBCS" /D "_USRDLL" /D "AVISYNTH_C_EXPORTS" /Fr /Yu"stdafx.h" /FD /Gs /GF /c .\audio\*.cpp
cl.exe /nologo /G6 /MD /W3 /wd4005 /GX /O2 /Ob2 /D "NDEBUG" /D "INC_OLE2" /D "STRICT" /D "WIN32" /D "_WIN32" /D "_MT" /D "_DLL" /D "_MBCS" /D "_USRDLL" /D "AVISYNTH_C_EXPORTS" /Fr /FD /Gs /GF /c .\audio\dbesi0.c
cl.exe /nologo /G6 /MD /W3 /wd4005 /GX /O2 /Ob2 /D "NDEBUG" /D "INC_OLE2" /D "STRICT" /D "WIN32" /D "_WIN32" /D "_MT" /D "_DLL" /D "_MBCS" /D "_USRDLL" /D "AVISYNTH_C_EXPORTS" /Fr /Yu"stdafx.h" /FD /Gs /GF /c .\filters\overlay\*.cpp .\filters\*.cpp .\filters\conditional\*.cpp .\sources\avi\*.cpp
ren .\sources\avi_source.cpp avi_source.c
ren .\sources\source.cpp source.c
cl.exe /nologo /G6 /MD /W3 /wd4005 /GX /O2 /Ob2 /D "NDEBUG" /D "INC_OLE2" /D "STRICT" /D "WIN32" /D "_WIN32" /D "_MT" /D "_DLL" /D "_MBCS" /D "_USRDLL" /D "AVISYNTH_C_EXPORTS" /Fr /Yu"stdafx.h" /FD /Gs /GF /c .\sources\*.cpp
ren .\sources\avi_source.c avi_source.cpp
ren .\sources\source.c source.cpp
cl.exe /nologo /G6 /MD /W3 /wd4005 /GX /O2 /Ob2 /D "NDEBUG" /D "INC_OLE2" /D "STRICT" /D "WIN32" /D "_WIN32" /D "_MT" /D "_DLL" /D "_MBCS" /D "_USRDLL" /D "AVISYNTH_C_EXPORTS" /Fr /Yu"stdafx.h" /FD /Gs /GF /c .\sources\source.cpp .\convert\*.cpp
mkdir .\Release
move *.obj .\Release
move *.sbr .\Release
ml.exe -c -coff -Cx -Fo.\Release\convert_a.obj .\convert\convert_a.asm
rc.exe /l 0x409 /d "NDEBUG" -Fo.\Release\avisynth.res .\core\avisynth.rc
echo linking:
link.exe /NODEFAULTLIB:libc ../distrib/lib/SoundTouch.lib ../distrib/lib/pfc.lib ../distrib/lib/devil.lib ../distrib/lib/softwire.lib msacm32.lib vfw32.lib kernel32.lib advapi32.lib version.lib user32.lib gdi32.lib ole32.lib uuid.lib winmm.lib oleaut32.lib /nologo /dll /machine:I386 /out:.\Release\avisynth.dll .\Release\*.obj .\Release\avisynth.res
del .\Release\*.obj
del .\Release\*.sbr
..\distrib\upx -9 release\avisynth.dll
copy Release\avisynth.dll C:\WINDOWS\system32
copy ..\distrib\bin\devil.dll C:\WINDOWS\system32That is how I do it; it compiles, but it does not run.
Stephen
P.S. I get a linker warning : all references to 'WINMM.dll' discarded by /OPT:REF
dandragonrage
29th April 2004, 11:11
I just checked out the CVS code. It compiles with VS6. I want to use VS7 (.Net) because the compiler optimizes much better, but I get errors with it.
Linking...
Creating library .\Release/avisynth.lib and object .\Release/avisynth.exp
LINK : warning LNK4098: defaultlib 'LIBC' conflicts with use of other libs; use /NODEFAULTLIB:library
SoundTouch.lib(SoundTouch.obj) : error LNK2001: unresolved external symbol "public: __thiscall std::runtime_error::runtime_error(class std::runtime_error const &)" (??0runtime_error@std@@QAE@ABV01@@Z)
SoundTouch.lib(FIFOSampleBuffer.obj) : error LNK2001: unresolved external symbol "public: __thiscall std::runtime_error::runtime_error(class std::runtime_error const &)" (??0runtime_error@std@@QAE@ABV01@@Z)
SoundTouch.lib(FIRFilter.obj) : error LNK2019: unresolved external symbol "public: __thiscall std::runtime_error::runtime_error(class std::runtime_error const &)" (??0runtime_error@std@@QAE@ABV01@@Z) referenced in function "public: virtual void __thiscall FIRFilter::setCoefficients(float const *,unsigned int,unsigned int)" (?setCoefficients@FIRFilter@@UAEXPBMII@Z)
SoundTouch.lib(SoundTouch.obj) : error LNK2001: unresolved external symbol "public: virtual __thiscall std::runtime_error::~runtime_error(void)" (??1runtime_error@std@@UAE@XZ)
SoundTouch.lib(FIFOSampleBuffer.obj) : error LNK2001: unresolved external symbol "public: virtual __thiscall std::runtime_error::~runtime_error(void)" (??1runtime_error@std@@UAE@XZ)
SoundTouch.lib(FIRFilter.obj) : error LNK2001: unresolved external symbol "public: virtual __thiscall std::runtime_error::~runtime_error(void)" (??1runtime_error@std@@UAE@XZ)
SoundTouch.lib(SoundTouch.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) const std::runtime_error::`vftable'" (__imp_??_7runtime_error@std@@6B@)
SoundTouch.lib(FIFOSampleBuffer.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) const std::runtime_error::`vftable'" (__imp_??_7runtime_error@std@@6B@) referenced in function "private: void __thiscall FIFOSampleBuffer::ensureCapacity(unsigned int)" (?ensureCapacity@FIFOSampleBuffer@@AAEXI@Z)
SoundTouch.lib(FIRFilter.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) const std::runtime_error::`vftable'" (__imp_??_7runtime_error@std@@6B@)
SoundTouch.lib(SoundTouch.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) private: bool __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::_Grow(unsigned int,bool)" (__imp_?_Grow@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAE_NI_N@Z) referenced in function "public: void __thiscall SoundTouch::setChannels(unsigned int)" (?setChannels@SoundTouch@@QAEXI@Z)
SoundTouch.lib(FIFOSampleBuffer.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) private: bool __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::_Grow(unsigned int,bool)" (__imp_?_Grow@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAE_NI_N@Z)
SoundTouch.lib(FIRFilter.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) private: bool __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::_Grow(unsigned int,bool)" (__imp_?_Grow@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAE_NI_N@Z)
SoundTouch.lib(SoundTouch.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) private: void __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::_Eos(unsigned int)" (__imp_?_Eos@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAEXI@Z) referenced in function "public: virtual void __thiscall SoundTouch::putSamples(float const *,unsigned int)" (?putSamples@SoundTouch@@UAEXPBMI@Z)
SoundTouch.lib(FIFOSampleBuffer.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) private: void __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::_Eos(unsigned int)" (__imp_?_Eos@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAEXI@Z)
SoundTouch.lib(SoundTouch.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) private: void __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::_Tidy(bool)" (__imp_?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAEX_N@Z) referenced in function "public: virtual void __thiscall SoundTouch::putSamples(float const *,unsigned int)" (?putSamples@SoundTouch@@UAEXPBMI@Z)
SoundTouch.lib(FIFOSampleBuffer.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) private: void __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::_Tidy(bool)" (__imp_?_Tidy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAEX_N@Z)
.\Release/avisynth.dll : fatal error LNK1120: 6 unresolved externals
It would really be awesome if someone could get this working.
scmccarthy
29th April 2004, 18:31
I have to uselink.exe /NODEFAULTLIB:libc to get the cvs to compile.
It compiles fine, but still does not work. Does anyone know how to install avisynth.dll? Or is something wrong with the way I compile it?
Here is the batch file I use:@echo off
set path=D:\WINDDK\2600\bin\x86;%PATH%
REM TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
REM PROP AllowPerConfigDependencies 0
REM PROP Scc_ProjName ""
REM PROP Scc_LocalPath ""
REM PROP Use_MFC 0
REM PROP Use_Debug_Libraries 0
REM PROP Output_Dir "Release"
REM PROP Intermediate_Dir "Release"
REM PROP Target_Dir ""
echo compiling:
REM ADD BASE cl.exe /nologo /MT /W3 /wd4005 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "AVISYNTH_EXPORTS" /YX /FD /c
cl.exe /G6 /MD /W3 /wd4005 /GX /O2 /Ob2 /D "NDEBUG" /D "INC_OLE2" /D "STRICT" /D "WIN32" /D "_WIN32" /D "_MT" /D "_DLL" /D "_MBCS" /D "_USRDLL" /D "AVISYNTH_C_EXPORTS" /Fr /Yu"stdafx.h" /Yc"stdafx.h" /FD /Gs /GF /c .\stdafx.cpp
cl.exe /nologo /G6 /MD /W3 /wd4005 /GX /O2 /Ob2 /D "NDEBUG" /D "INC_OLE2" /D "STRICT" /D "WIN32" /D "_WIN32" /D "_MT" /D "_DLL" /D "_MBCS" /D "_USRDLL" /D "AVISYNTH_C_EXPORTS" /Fr /Yu"stdafx.h" /FD /Gs /GF /c .\core\parser\*.cpp
ren .\core\main.cpp main.c
cl.exe /nologo /G6 /MD /W3 /wd4005 /GX /O2 /Ob2 /D "NDEBUG" /D "INC_OLE2" /D "STRICT" /D "WIN32" /D "_WIN32" /D "_MT" /D "_DLL" /D "_MBCS" /D "_USRDLL" /D "AVISYNTH_C_EXPORTS" /Fr /Yu"stdafx.h" /FD /Gs /GF /c .\core\*.cpp
ren .\core\main.c main.cpp
cl.exe /nologo /G6 /MD /W3 /wd4005 /GX /O2 /Ob2 /D "NDEBUG" /D "INC_OLE2" /D "STRICT" /D "WIN32" /D "_WIN32" /D "_MT" /D "_DLL" /D "_MBCS" /D "_USRDLL" /D "AVISYNTH_C_EXPORTS" /Fr /FD /Gs /GF /c .\core\main.cpp
cl.exe /nologo /G6 /MD /W3 /wd4005 /GX /O2 /Ob2 /D "NDEBUG" /D "INC_OLE2" /D "STRICT" /D "WIN32" /D "_WIN32" /D "_MT" /D "_DLL" /D "_MBCS" /D "_USRDLL" /D "AVISYNTH_C_EXPORTS" /Fr /Yu"stdafx.h" /FD /Gs /GF /c .\audio\*.cpp
cl.exe /nologo /G6 /MD /W3 /wd4005 /GX /O2 /Ob2 /D "NDEBUG" /D "INC_OLE2" /D "STRICT" /D "WIN32" /D "_WIN32" /D "_MT" /D "_DLL" /D "_MBCS" /D "_USRDLL" /D "AVISYNTH_C_EXPORTS" /Fr /FD /Gs /GF /c .\audio\dbesi0.c
cl.exe /nologo /G6 /MD /W3 /wd4005 /GX /O2 /Ob2 /D "NDEBUG" /D "INC_OLE2" /D "STRICT" /D "WIN32" /D "_WIN32" /D "_MT" /D "_DLL" /D "_MBCS" /D "_USRDLL" /D "AVISYNTH_C_EXPORTS" /Fr /Yu"stdafx.h" /FD /Gs /GF /c .\filters\overlay\*.cpp
cl.exe /nologo /G6 /MD /W3 /wd4005 /GX /O2 /Ob2 /D "NDEBUG" /D "INC_OLE2" /D "STRICT" /D "WIN32" /D "_WIN32" /D "_MT" /D "_DLL" /D "_MBCS" /D "_USRDLL" /D "AVISYNTH_C_EXPORTS" /Fr /Yu"stdafx.h" /FD /Gs /GF /c .\filters\*.cpp
cl.exe /nologo /G6 /MD /W3 /wd4005 /GX /O2 /Ob2 /D "NDEBUG" /D "INC_OLE2" /D "STRICT" /D "WIN32" /D "_WIN32" /D "_MT" /D "_DLL" /D "_MBCS" /D "_USRDLL" /D "AVISYNTH_C_EXPORTS" /Fr /Yu"stdafx.h" /FD /Gs /GF /c .\filters\conditional\*.cpp
cl.exe /nologo /G6 /MD /W3 /wd4005 /GX /O2 /Ob2 /D "NDEBUG" /D "INC_OLE2" /D "STRICT" /D "WIN32" /D "_WIN32" /D "_MT" /D "_DLL" /D "_MBCS" /D "_USRDLL" /D "AVISYNTH_C_EXPORTS" /Fr /Yu"stdafx.h" /FD /Gs /GF /c .\sources\avi\*.cpp
ren .\sources\avi_source.cpp avi_source.c
ren .\sources\source.cpp source.c
cl.exe /nologo /G6 /MD /W3 /wd4005 /GX /O2 /Ob2 /D "NDEBUG" /D "INC_OLE2" /D "STRICT" /D "WIN32" /D "_WIN32" /D "_MT" /D "_DLL" /D "_MBCS" /D "_USRDLL" /D "AVISYNTH_C_EXPORTS" /Fr /Yu"stdafx.h" /FD /Gs /GF /c .\sources\*.cpp
ren .\sources\avi_source.c avi_source.cpp
ren .\sources\source.c source.cpp
cl.exe /nologo /G6 /MD /W3 /wd4005 /GX /O2 /Ob2 /D "NDEBUG" /D "INC_OLE2" /D "STRICT" /D "WIN32" /D "_WIN32" /D "_MT" /D "_DLL" /D "_MBCS" /D "_USRDLL" /D "AVISYNTH_C_EXPORTS" /Fr /Yu"stdafx.h" /FD /Gs /GF /c .\sources\source.cpp
cl.exe /nologo /G6 /MD /W3 /wd4005 /GX /O2 /Ob2 /D "NDEBUG" /D "INC_OLE2" /D "STRICT" /D "WIN32" /D "_WIN32" /D "_MT" /D "_DLL" /D "_MBCS" /D "_USRDLL" /D "AVISYNTH_C_EXPORTS" /Fr /Yu"stdafx.h" /FD /Gs /GF /c .\convert\*.cpp
REM mkdir .\Release
move *.obj .\Release
move *.sbr .\Release
ml.exe -c -coff -Cx -Fo.\Release\convert_a.obj .\convert\convert_a.asm
rc.exe /l 0x409 /d "NDEBUG" -Fo.\Release\avisynth.res .\core\avisynth.rc
echo linking:
REM ADD BASE link.exe kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
link.exe /NODEFAULTLIB:libc ../distrib/lib/SoundTouch.lib ../distrib/lib/pfc.lib ../distrib/lib/devil.lib ../distrib/lib/softwire.lib msacm32.lib vfw32.lib kernel32.lib advapi32.lib version.lib user32.lib gdi32.lib ole32.lib uuid.lib winmm.lib oleaut32.lib /nologo /dll /machine:I386 /out:.\Release\avisynth.dll .\Release\*.obj .\Release\avisynth.res
del .\Release\*.obj
del .\Release\*.sbr
..\distrib\upx -9 release\avisynth.dll
REM copy Release\avisynth.dll C:\WINDOWS\system32
REM copy ..\distrib\bin\devil.dll C:\WINDOWS\system32
Stephen
dandragonrage
29th April 2004, 23:29
It compiles file? Does avisynth\distrib\bin\avisynth.dll exist, then?
scmccarthy
30th April 2004, 00:13
Oh yes, but if I do the last two lines where it copies the two files to system32, I get an error when I try an avs file.
Stephen
Bidoche
30th April 2004, 09:55
@dandragonrage
All your missing externals come from the standard template library which must be included with .NET. (as with every C++ compiler)
I do not know if you have to link it as a lib or if mere includes will do.
Anyway you can try :
#include <string>
#include <stdexcept>
dandragonrage
30th April 2004, 13:21
None of that worked. I also tried point VC.net to the lib directory of VC6 and copying the linker library include stuff over but that also did not help.
scmccarthy
30th April 2004, 20:54
@dandragonrage
You are not linking with the C runtime library due to the conflict with libc.lib. Using NODEFAULTLIB would get rid of the error messages, but I am not certain if that would solve the problem since it does not work for me.
Stephen
dandragonrage
1st May 2004, 00:25
Using nodefaultlib gets rid of the warning but doesn't help the errors.
scmccarthy
1st May 2004, 17:35
@dandragonrage,
Maybe the lib environment variable points to a version of libcmt.lib that is incompatible with the includes you use.
Or maybe the version of C runtime library you link with is not the same one that SoundTouch.lib links to. Really the second answer is more likely.
Stephen
ada2001
3rd May 2004, 23:19
I have the same compile errors as dandragonrage. I'm using VSNet 2003. I've tried (of course) using the /NODEFAULTLIB:C option to no avail. Has anyone else been able to get a working VS .NET 2003 build?
Thanks!
ada2001
3rd May 2004, 23:56
When I compiled the SoundTouch sources using VS .NET 2003 and then using the subsequent SoundTouch.lib to build AviSynth CVS, I get the following errors:
Linking...
msvcprt.lib(MSVCP71.dll) : error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::~basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(void)" (??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ) already defined in SoundTouch.lib(SoundTouch.obj)
msvcprt.lib(MSVCP71.dll) : error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z) already defined in SoundTouch.lib(SoundTouch.obj)
msvcprt.lib(MSVCP71.dll) : error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(char const *)" (??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z) already defined in SoundTouch.lib(SoundTouch.obj)
msvcprt.lib(MSVCP71.dll) : error LNK2005: "public: unsigned int __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::max_size(void)const " (?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ) already defined in SoundTouch.lib(SoundTouch.obj)
msvcprt.lib(MSVCP71.dll) : error LNK2005: "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > & __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::erase(unsigned int,unsigned int)" (?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@II@Z) already defined in SoundTouch.lib(SoundTouch.obj)
msvcprt.lib(MSVCP71.dll) : error LNK2005: "public: unsigned int __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::size(void)const " (?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ) already defined in SoundTouch.lib(SoundTouch.obj)
msvcprt.lib(MSVCP71.dll) : warning LNK4006: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::~basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(void)" (??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ) already defined in SoundTouch.lib(SoundTouch.obj); second definition ignored
msvcprt.lib(MSVCP71.dll) : warning LNK4006: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z) already defined in SoundTouch.lib(SoundTouch.obj); second definition ignored
msvcprt.lib(MSVCP71.dll) : warning LNK4006: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(char const *)" (??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z) already defined in SoundTouch.lib(SoundTouch.obj); second definition ignored
msvcprt.lib(MSVCP71.dll) : warning LNK4006: "public: unsigned int __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::max_size(void)const " (?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ) already defined in SoundTouch.lib(SoundTouch.obj); second definition ignored
msvcprt.lib(MSVCP71.dll) : warning LNK4006: "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > & __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::erase(unsigned int,unsigned int)" (?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@II@Z) already defined in SoundTouch.lib(SoundTouch.obj); second definition ignored
msvcprt.lib(MSVCP71.dll) : warning LNK4006: "public: unsigned int __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::size(void)const " (?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIXZ) already defined in SoundTouch.lib(SoundTouch.obj); second definition ignored
Creating library .\Release/avisynth.lib and object .\Release/avisynth.exp
.\Release/avisynth.dll : fatal error LNK1169: one or more multiply defined symbols found
I'm not terribly familiar with VS anything, so anyone else have any ideas?
Thanks!
Bidoche
4th May 2004, 19:03
did you try to not link vs msvcprt.lib ?
It's weird anyway, as far as my understanding goes, I thought that STL code would not be exported from any lib...
I suggest you try replacing VC7.1 standard library by STLPort from www.stlport.org (download and set it in your include path) and recompile.
ada2001
6th May 2004, 22:14
Yeah, it's deeply wierd. I had tried unlinking msvcprt.lib and it really messed things up so I figured the previous errors were probably easier to fix. When I get some time, I'll start looking at this again.
Bidoche
14th May 2004, 19:52
I think I got the solution this time :
Some guy posted about the same probleme in the forums at www.stlport.org.
He finally fixed it by creating a empty project and importing his files into it, rather than using a conversion from VC6.
scmccarthy
1st June 2004, 06:03
I can compile AviSynth, but VirtualDubMod gives me an avi import filter error and windows media player complains the class is not registered.
Stephen
Wilbert
4th July 2004, 23:03
I finally installed the professional edition (and the rest of the stuff). But, I also can't get it to work. When compiling I get the following message
--------------------Configuration: avisynth - Win32 Release--------------------
Linking...
Creating library Release/avisynth.lib and object Release/avisynth.exp
SoundTouch.lib(FIRFilter.obj) : fatal error LNK1202: "F:\CompilingPlugins\avisynth_oud\src\Release\vc60.pdb" is missing
debugging information for referencing module
Error executing link.exe.
avisynth.dll - 1 error(s), 0 warning(s)
The link settings:
/NODEFAULTLIB:libc ../distrib/lib/SoundTouch.lib ../distrib/lib/pfc.lib ../distrib/lib/devil.lib
../distrib/lib/softwire.lib msacm32.lib vfw32.lib kernel32.lib advapi32.lib version.lib user32.lib gdi32.lib ole32.lib
uuid.lib winmm.lib oleaut32.lib
What am I doing wrong?
stickboy
4th July 2004, 23:37
I've been getting the same problem trying to build the Release version...
@WilbertWhat am I doing wrong?Nothing! The release SoundTouch library has been built without symbols (DAMN!!):angry: You will have to build release avisynth.dll without symbols until some kind soul rebuilds it and puts it in CVS.
Look in the [link] tabpane of properties/settings turn off symbols:mad:
IanB
Wilbert
6th July 2004, 21:26
Sorry, I can't find that option :D
Somewhere under Project -> Settings -> C/C++ -> Preprocessor -> check "Undefine all symbols"
I guess that's the wrong one, because that doesn't work.
stickboy
7th July 2004, 06:55
In MSVC6:
Project > Settings > Link > Debug, uncheck "Debug info".
scmccarthy
9th July 2004, 16:50
A thought, must AviSynth be compiled only as a debug release? Does it work as a regular release?
Stephen
stickboy
9th July 2004, 19:33
IIRC the debug DLL is couple megabytes in size... the release DLL is only several hundred kilobytes.
Clearly the release version is the one that's distributed.
Awhile back, though, I couldn't get the debug DLL working... maybe that's what you're thinking of?
Wilbert
9th July 2004, 19:39
Just crab the latest source from CVS. It works now (release build) without doing anything special. Sh0dan updated the project file a few days ago.
scmccarthy
18th July 2004, 05:12
I continue to get the same Windows Media Player error:Class not registered (Error=80040154)
Stephen
tritical
21st July 2004, 23:08
I can confirm it is much easier to get AviSynth to compile now vs. the last time I tried :), especially with vs.net. It worked pretty much straight away, converted to vc 7 project on load (first time that has never screwed up for me :D). Few errors from the soundtouch lib, I didn't try IanB's suggestion for it but just compiled the soundtouch lib myself and everything worked fine. No errors on compiling avisynth, but 179 warnings... mainly all small stuff like type conversion - possible loss of data, no emms at end of asm function, etc... That was using vs.net 2002, directx 9 sdk, platform sdk, but I guess the directx sdk and platform sdk are no longer needed.
tolgae
7th January 2005, 09:29
I am trying to compile 2.5.5 sources (and I tried the old ones, the same error happens). I am getting errors in the convert_a.asm file. All of them look similar to this one:
convert_a.asm(258) : error A2070: invalid instruction operands
YUV2RGB_INNER_LOOP(8): Macro Called From
YUV2RGB_PROC(33): Macro Called From
I am using VC7.1. Seeing the recent posts that mentions the SDKs are not necessary anymore, I did not install anything extra. Probably it is something very simple but even after reading all the posts in this thread, I am not seeing it (I am no good with asm).
Any help is appreciated.
esby
7th January 2005, 13:40
afik,
people succeeded compiling avs 2.55 with vc6.x, not with vc7.X.
esby
tolgae
7th January 2005, 16:39
Originally posted by esby
afik,
people succeeded compiling avs 2.55 with vc6.x, not with vc7.X.
esby
The post right above mine (from tritical) indicates it is possible to compile with VC7.x. I was hoping a step-by-step guide on how to do it, like
1- Install VC7.x
2- Download source.
3- Download ??? (if necessary)
4- Open project.
5- ???
6- Build
tritical
8th January 2005, 09:38
It is definitely possible, just did it last night :D. It should work fine as long as you have the Platform sdk installed. I'm not really sure if you need the directx sdk anymore or not (I think not). But for me it works fine just doing this:
1.) download source
2.) open workspace and convert to vc 7 project
3.) set configuration to release
4.) build project
EDIT: About needing the platform sdk, I'm not sure if you do or don't. I have it installed and the above process works fine for me.
WarpEnterprises
8th January 2005, 22:19
the DX SDK is not necessary. It was needed only for DirectShowSource which is now a plugin.
tolgae
9th January 2005, 22:18
Originally posted by tritical
It is definitely possible, just did it last night :D. It should work fine as long as you have the Platform sdk installed. I'm not really sure if you need the directx sdk anymore or not (I think not). But for me it works fine just doing this:
1.) download source
2.) open workspace and convert to vc 7 project
3.) set configuration to release
4.) build project
EDIT: About needing the platform sdk, I'm not sure if you do or don't. I have it installed and the above process works fine for me.
Which source are you compiling? There's no way that 2.55 sources compile as you download them. Not to mention many warnings about data truncation, here's what I noticed when I tried to compile the source:
1- The custom build command for the asm file has syntax errors
2- The icon file is missing
3- An executable for the post build step is not there.
4- One of the libs supplied is compiled with libc, the rest is msvcrt. I downloaded that lib and compiled it as well...
As you may see, I got it compiled after fixing things and changing the build somewhat. But I would like to know about a source that would compile "out of the box"...
esby
10th January 2005, 04:17
well
I posted that answer,
because last time I tried
I stopped at this error,
and since I have vc6.2 installed too, that's not really a problem for me to compile it...
Now I don't know how to solve this.
esby
tritical
10th January 2005, 04:32
My mistake. The source I was talking about (in both cases, now and a few months ago) was a cvs checkout, not a dl of the source zip. So just ingore my comments.
esby
10th January 2005, 04:35
well I did a cvs checkout before posting.
(the problem is still the same.)
esby
tritical
10th January 2005, 05:04
ok, wanted to figure this out for sure so just did it (this is for vs.net 2003):
1.) fresh cvs checkout (project file, libs, everything)
2.) opened workspace in vs.net 2003, and selected "yes to all" on the convert projects popup
3.) set configuration to release
4.) had to do the usual thing for the custom build step command line on the asm file, which is take out the quotation marks
5.) the soundtouch lib still has problems, replaced it with my own build
6.) compile and it works, has the usual warnings but those are fine
Kopernikus
25th April 2005, 15:34
Hi,
is it possible to compile Avisynth plugins with MinGW? Recently I tried SimpleSample and got errors for a integer typedef (uint32_t iirc).
Now I tried with a newer Version (3.10) it worked.
But if i try to load the dll in an avisynth Script i get a "Script Error: there is no function named: SimpleSample"
Is it in general impossible to compile avs Filters with MinGW, or are there special options to use?
ruanova
16th June 2005, 14:21
Hi...:
In this situation...:
- Windows XP Pro
- Visual Studio .NET 2003
- AviSynth 2.5.5 source downloaded from Sourceforge .zip file
- STLPort 4.6.2, builded in this system with VS7
- AviSynth VS project open and converted to VS7 ...
- STLPort_vc7.lib added in the Lib's of the project
- STLPort includes added in the includes needed to the AviSynth project
- Compiling AviSynth in release mode ... I can't correct this Linker errors:
SoundTouch.lib(SoundTouch.obj) : error LNK2001: símbolo externo "public: __thiscall std::runtime_error::runtime_error(class std::runtime_error const &)" (??0runtime_error@std@@QAE@ABV01@@Z) sin resolver
SoundTouch.lib(FIFOSampleBuffer.obj) : error LNK2001: símbolo externo "public: __thiscall std::runtime_error::runtime_error(class std::runtime_error const &)" (??0runtime_error@std@@QAE@ABV01@@Z) sin resolver
SoundTouch.lib(FIRFilter.obj) : error LNK2019: símbolo externo "public: __thiscall std::runtime_error::runtime_error(class std::runtime_error const &)" (??0runtime_error@std@@QAE@ABV01@@Z) sin resolver al que se hace referencia en la función "public: virtual void __thiscall FIRFilter::setCoefficients(float const *,unsigned int,unsigned int)" (?setCoefficients@FIRFilter@@UAEXPBMII@Z)
SoundTouch.lib(SoundTouch.obj) : error LNK2001: símbolo externo "public: virtual __thiscall std::runtime_error::~runtime_error(void)" (??1runtime_error@std@@UAE@XZ) sin resolver
SoundTouch.lib(FIFOSampleBuffer.obj) : error LNK2001: símbolo externo "public: virtual __thiscall std::runtime_error::~runtime_error(void)" (??1runtime_error@std@@UAE@XZ) sin resolver
SoundTouch.lib(FIRFilter.obj) : error LNK2001: símbolo externo "public: virtual __thiscall std::runtime_error::~runtime_error(void)" (??1runtime_error@std@@UAE@XZ) sin resolver
SoundTouch.lib(SoundTouch.obj) : error LNK2001: símbolo externo "__declspec(dllimport) const std::runtime_error::`vftable'" (__imp_??_7runtime_error@std@@6B@) sin resolver
SoundTouch.lib(FIFOSampleBuffer.obj) : error LNK2019: símbolo externo "__declspec(dllimport) const std::runtime_error::`vftable'" (__imp_??_7runtime_error@std@@6B@) sin resolver al que se hace referencia en la función "private: void __thiscall FIFOSampleBuffer::ensureCapacity(unsigned int)" (?ensureCapacity@FIFOSampleBuffer@@AAEXI@Z)
SoundTouch.lib(FIRFilter.obj) : error LNK2001: símbolo externo "__declspec(dllimport) const std::runtime_error::`vftable'" (__imp_??_7runtime_error@std@@6B@) sin resolver
.\Release/avisynth.dll : fatal error LNK1120: 3 externos sin resolver
Please ... help me ... please....
recompile SoundTouch 1.2.1 and use that lib. You can get it here (http://sky.prohosting.com/oparviai/soundtouch/old.html)
esby
17th June 2005, 09:32
You don't need stlport for avisynth 2.55 btw.
esby
ruanova
17th June 2005, 10:04
Hi, thanks tsb, thans esby ...
SoundTouch 1.2.1 recompilation sucessfully with VC6 and Processor Pack ...
but now, new errors...:
SoundTouch.lib(SoundTouch.obj) : error LNK2019: símbolo externo "void __cdecl std::_Xlen(void)" (?_Xlen@std@@YAXXZ) sin resolver al que se hace referencia en la función "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > & __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::assign(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,unsigned int,unsigned int)" (?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z)
SoundTouch.lib(FIFOSampleBuffer.obj) : error LNK2001: símbolo externo "void __cdecl std::_Xlen(void)" (?_Xlen@std@@YAXXZ) sin resolver
SoundTouch.lib(FIRFilter.obj) : error LNK2001: símbolo externo "void __cdecl std::_Xlen(void)" (?_Xlen@std@@YAXXZ) sin resolver
SoundTouch.lib(SoundTouch.obj) : error LNK2019: símbolo externo "void __cdecl std::_Xran(void)" (?_Xran@std@@YAXXZ) sin resolver al que se hace referencia en la función "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > & __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::assign(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,unsigned int,unsigned int)" (?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z)
SoundTouch.lib(FIFOSampleBuffer.obj) : error LNK2001: símbolo externo "void __cdecl std::_Xran(void)" (?_Xran@std@@YAXXZ) sin resolver
SoundTouch.lib(FIRFilter.obj) : error LNK2001: símbolo externo "void __cdecl std::_Xran(void)" (?_Xran@std@@YAXXZ) sin resolver
.\Release/avisynth.dll : fatal error LNK1120: 2 externos sin resolver
Sorry .... I need help again ...
But, can send me your "SoundTouch.lib" and your "AviSynth.dsw, .dsp, .snl, or .vcproj" with the project options set to OK ...
Thanks again,
sorry I was a little to fast to reply. You will have to set the Runtime Library under C/C++ codegeneration to Multi-threaded DLL when you compile the SoundTouch lib with VS .NET 2003 (you should use the same compiler you want to compile avisynth with). If that doesn't work I will send the file to you.
ruanova
17th June 2005, 13:48
Oooooooohhhhhh.... yeah.... That's all folks...!
Thank's tsp (I'm like 'a little to fast replies..'...)
Now I compile succesfully AviSynth project ... but comenting some lines on "avs-soundtouch.cpp" :
Lines like:
gotsamples = samplers[n]->receiveSamples(passbuffer, BUFFERSIZE - samples_out);
samplers[n]->putSamples(passbuffer, BUFFERSIZE);
...
This lines make this errors:
audio\avs-soundtouch.cpp(158) : error C2664: 'uint FIFOProcessor::receiveSamples(soundtouch::SAMPLETYPE *,uint)' : no se puede convertir el parámetro 1 de 'SFLOAT *' a 'soundtouch::SAMPLETYPE *'
Los tipos seńalados no están relacionados; la conversión requiere reinterpret_cast, conversión de estilo de C o conversión de estilo de función
(Sorry my Visual Studio are in Spanish ....)
hmm forgot about that one to. There are two solution. 1) use the latest CVS source or 2) change the calls to receiveSamples(passbuffer,blablalba) to receiveSamples((short*)passbuffer,blablalba) and putSamples(passbuffer,blablalba) to putSamples((short*)passbuffer,blablalba). This will make it compile but I'm not entirely sure how it would affect the sound
ruanova
17th June 2005, 14:34
He babes ... tsp is a great man ...( or woman..)
OK, thanks again...
Now I am going to eat...
Tonight it will investigate in the secrets of AviSynth ...
Hi folks,
I'm not having much luck compiling. I've done a CVS checkout, installed the DirectX 9 SDK and the Platform SDK. Under Visual Studio 6 (SP5, Processor Pack) I can't compile the DirectShow plugin, and under Visual Studio 2003 .NET I can't compile the DirectShow plugin or Avisynth itself.
For Visual Studio 6, my directories are:
Include Directories:
Platform SDK\...\Baseclasses
DirectX 9 SDK (June 2005)\Include
Platform SDK\Include
VC98\Include
VC98\MFC\Include
VC98\ATL\Include
Library Directories:
Platform SDK\...\Baseclasses\Debug
Platform SDK\...\Baseclasses\Release
DirectX 9 SDK (June 2005)\Lib\X86
Platform SDK\Lib
VC98\Lib
VC98\MFC\Lib
Here are the errors I get:
directshow_source.cpp
D:\User Files\Visual Studio Projects\Visual C++\avisynth\src\plugins\DirectShowSource\directshow_source.cpp(295) : error C2065: 'lstrcpyW_instead_use_StringCbCopyW_or_StringCchCopyW' : undeclared identifier
D:\User Files\Visual Studio Projects\Visual C++\avisynth\src\plugins\DirectShowSource\directshow_source.cpp(1109) : error C2065: 'wsprintf_instead_use_StringCbPrintf_or_StringCchPrintf' : undeclared identifier
D:\User Files\Visual Studio Projects\Visual C++\avisynth\src\plugins\DirectShowSource\directshow_source.cpp(1192) : error C2065: 'strcat_instead_use_StringCbCatA_or_StringCchCatA' : undeclared identifier
Error executing cl.exe.
Under Visual Studio .NET 2003, my directories are:
Include Directories:
Platform SDK\...\Baseclasses
DirectX 9 SDK (June 2005)\Include
Platform SDK\Include
VCInstallDir\Include
VCInstallDir\ATLMFC\Include
Library Directories:
Platform SDK\...\Baseclasses\Debug
Platform SDK\...\Baseclasses\Release
DirectX 9 SDK (June 2005)\Lib\x86
Platform SDK\Lib
VCInstallDir\Lib
VCInstallDir\ATLMFC\Lib
And the errors are:
directshow_source.cpp
d:\User Files\Visual Studio Projects\Visual C++\Copy of avisynth\src\plugins\DirectShowSource\directshow_source.h(202) : error C2761: '__ctor' : member function redeclaration not allowed
d:\User Files\Visual Studio Projects\Visual C++\Copy of avisynth\src\plugins\DirectShowSource\directshow_source.h(203) : error C2761: 'HRESULT GetSampleEnumPins::Next(ULONG,IPin ** ,ULONG *)' : member function redeclaration not allowed
directshow_source.cpp(295) : warning C4995: 'lstrcpyWInternal': name was marked as #pragma deprecated
directshow_source.cpp(295) : error C3861: 'lstrcpyWInternal': identifier not found, even with argument-dependent lookup
directshow_source.cpp(339) : warning C4995: 'lstrcpyWInternal': name was marked as #pragma deprecated
directshow_source.cpp(339) : error C3861: 'lstrcpyWInternal': identifier not found, even with argument-dependent lookup
directshow_source.cpp(1109) : warning C4995: 'wsprintf': name was marked as #pragma deprecated
directshow_source.cpp(1109) : warning C4995: 'wsprintfA': name was marked as #pragma deprecated
directshow_source.cpp(1192) : warning C4995: 'strcat': name was marked as #pragma deprecated
directshow_source.cpp(1193) : warning C4995: 'strcat': name was marked as #pragma deprecated
directshow_source.cpp(1194) : warning C4995: 'strcat': name was marked as #pragma deprecated
directshow_source.cpp(1195) : warning C4995: 'strcat': name was marked as #pragma deprecated
avisynth
Assembling d:\User Files\Visual Studio Projects\Visual C++\Copy of avisynth\src\convert\convert_a.asm...
Microsoft (R) Macro Assembler Version 7.10.3077
Copyright (C) Microsoft Corporation. All rights reserved.
MASM : fatal error A1017: missing source filename
Project : error PRJ0019: A tool returned an error code from "Assembling d:\User Files\Visual Studio Projects\Visual C++\Copy of avisynth\src\convert\convert_a.asm..."
Can anyone offer any advice, please?
Many thanks,
PGB.
Wilbert
20th June 2005, 20:20
I'm not having much luck compiling. I've done a CVS checkout, installed the DirectX 9 SDK and the Platform SDK. Under Visual Studio 6 (SP5, Processor Pack) I can't compile the DirectShow plugin (...)
For Visual Studio 6, my directories are:
Include Directories:
Platform SDK\...\Baseclasses
DirectX 9 SDK (June 2005)\Include
Platform SDK\Include
VC98\Include
VC98\MFC\Include
VC98\ATL\Include
Library Directories:
Platform SDK\...\Baseclasses\Debug
Platform SDK\...\Baseclasses\Release
DirectX 9 SDK (June 2005)\Lib\X86
Platform SDK\Lib
VC98\Lib
VC98\MFC\Lib
Seems to be fine. Did you recompile baseclasses.dsp first (in ...\DX90SDK\Samples\C++\DirectShow\BaseClasses)? I don't know whether it's still necessary.
Thanks for the reply, Wilbert.
I did compile the baseclasses under VS .NET in both debug and release modes.
Would it make a difference if I compiled them under VS6?
Many thanks,
PGB.
avisynth
Assembling d:\User Files\Visual Studio Projects\Visual C++\Copy of avisynth\src\convert\convert_a.asm...
Microsoft (R) Macro Assembler Version 7.10.3077
Copyright (C) Microsoft Corporation. All rights reserved.
MASM : fatal error A1017: missing source filename
Project : error PRJ0019: A tool returned an error code from "Assembling d:\User Files\Visual Studio Projects\Visual C++\Copy of avisynth\src\convert\convert_a.asm..."
to fix this error you need to change the quotes in the custom build preferences for the convert_a.asm
Hi tsp,
Thanks for the help. That's got me past that hurdle, now I'm stuck on:
avs-soundtouch.obj : error LNK2019: unresolved external symbol "public: void __thiscall SoundTouch::setSampleRate(unsigned int)" (?setSampleRate@SoundTouch@@QAEXI@Z) referenced in function "public: __thiscall AVSStereoSoundTouch::AVSStereoSoundTouch(class PClip,double,double,double,class IScriptEnvironment *)" (??0AVSStereoSoundTouch@@QAE@VPClip@@NNNPAVIScriptEnvironment@@@Z)
avs-soundtouch.obj : error LNK2019: unresolved external symbol "public: void __thiscall SoundTouch::setChannels(unsigned int)" (?setChannels@SoundTouch@@QAEXI@Z) referenced in function "public: __thiscall AVSStereoSoundTouch::AVSStereoSoundTouch(class PClip,double,double,double,class IScriptEnvironment *)" (??0AVSStereoSoundTouch@@QAE@VPClip@@NNNPAVIScriptEnvironment@@@Z)
avs-soundtouch.obj : error LNK2019: unresolved external symbol "public: void __thiscall SoundTouch::setPitch(float)" (?setPitch@SoundTouch@@QAEXM@Z) referenced in function "public: __thiscall AVSStereoSoundTouch::AVSStereoSoundTouch(class PClip,double,double,double,class IScriptEnvironment *)" (??0AVSStereoSoundTouch@@QAE@VPClip@@NNNPAVIScriptEnvironment@@@Z)
avs-soundtouch.obj : error LNK2019: unresolved external symbol "public: void __thiscall SoundTouch::setTempo(float)" (?setTempo@SoundTouch@@QAEXM@Z) referenced in function "public: __thiscall AVSStereoSoundTouch::AVSStereoSoundTouch(class PClip,double,double,double,class IScriptEnvironment *)" (??0AVSStereoSoundTouch@@QAE@VPClip@@NNNPAVIScriptEnvironment@@@Z)
avs-soundtouch.obj : error LNK2019: unresolved external symbol "public: void __thiscall SoundTouch::setRate(float)" (?setRate@SoundTouch@@QAEXM@Z) referenced in function "public: __thiscall AVSStereoSoundTouch::AVSStereoSoundTouch(class PClip,double,double,double,class IScriptEnvironment *)" (??0AVSStereoSoundTouch@@QAE@VPClip@@NNNPAVIScriptEnvironment@@@Z)
avs-soundtouch.obj : error LNK2019: unresolved external symbol "public: __thiscall SoundTouch::SoundTouch(void)" (??0SoundTouch@@QAE@XZ) referenced in function "public: __thiscall AVSStereoSoundTouch::AVSStereoSoundTouch(class PClip,double,double,double,class IScriptEnvironment *)" (??0AVSStereoSoundTouch@@QAE@VPClip@@NNNPAVIScriptEnvironment@@@Z)
.\Release/avisynth.dll : fatal error LNK1120: 6 unresolved externals
Which looks like the problem ruanova was having (albeit in Spanish!). I'm just trying to compile the Soundtouch 1.2.1 library, but getting an "ambiguous call to overloaded function"... I'll keep you posted...
.................
Yes, that's done it. I had to change a 2 to 2.0 in the soundtouch source code to make it compile, but that's sorted out the problems on compiling Avisynth.
Any ideas on the DirectShowSource compile problem? That's still there...
Many thanks,
PGB.
pgb: I just compiled avisynth with visual c++ 2005 Express Edition. That was really a pain because the compiler is much more strict than vc++ 6 and vc++ NET 2003 by default.
you will need to change the the functions the error points to from something like this:
pow(2,bufferblablalba) to this pow((float)2,(int)bufferblablabla).
Thanks very much, tsp and Wilbert. I've got avisynth compiling happily under VS .NET 2003. I think I'll hold off on the 2005 edition till I have to use it for work!
All the best, guys,
PGB.
azsd
14th July 2005, 10:59
I am using vs 2003 with intel cpp complier 9.0, first I get lots complier error,atfer change the special source files complie by cl.exe,modify the asm build command,complier error disappeared,and get link error like some posts here.
then I have download SoundTouch 1.3.0 and replaced soundtouch.lib and soundtouch.h,
and get the avisynth.dll/TCPDeliver.dll generated successful.
when compling DirectShowSource project,
I Get this Error
directshow_source.cpp(296): error: identifier "lstrcpyWInternal" is undefined
It's defined in wxutil.h in baseclasses directionary.
Is this defination replaced sdk's lstrcpyw def?
I have tried to include windows.h after #include <streams.h> in directshow_source.h but it take no help.
I have no idear now,Is there some tips? thx
jobjon
20th November 2005, 09:18
The newest platform sdk(2003) seems to comment out APIs in wxutil.h
from the following line,
// these internal routines and the binary will not run on Win95.
so removing comment out, it may work fine.
devaster
20th April 2006, 07:10
i have a small problem: i use tortoise cvs(or svn) and i cannot download a source for avisynth its asking me for login name and password ...
how or where can i obtain it ???
esby
20th April 2006, 09:58
try using anonymous and no password ?
esby
devaster
3rd May 2006, 00:36
update: baseclasses are not in latest directx sdk (april 2006) but are in latest platform sdk (2006) => i think than the dx sdk is not in use anymore ...
devaster
12th June 2006, 21:12
i have a small problem : compiler says at :
YUV2RGB_PROC mmx_YUY2toRGB24,0,0
YUV2RGB_PROC mmx_YUY2toRGB32,0,1
this :
Error 1 error A2070: invalid instruction operands h:\comp\Avisynth\src\convert\convert_a.asm 290
huh ???
foxyshadis
12th June 2006, 22:52
Check the last paragraph here: http://forum.doom9.org/showthread.php?t=111960
Point the custom build step to the 7.1 ml.exe (I made new folders for 6 and 7.1), and add -safeseh to the command line.
devaster
13th June 2006, 06:35
thanx fs
devaster
15th June 2006, 22:58
o holy god i have now this problem :
Error 448 error LNK2005: "public: char const * __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::c_str(void)const " (?c_str@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPBDXZ) already defined in SoundTouch.lib(SoundTouch.obj) msvcprt.lib
Error 449 error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::~basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(void)" (??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ) already defined in SoundTouch.lib(SoundTouch.obj) msvcprt.lib
Error 450 error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(char const *)" (??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z) already defined in SoundTouch.lib(SoundTouch.obj) msvcprt.lib
Error 451 error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z) already defined in SoundTouch.lib(SoundTouch.obj) msvcprt.lib
Error 452 error LNK2005: "public: static unsigned int __cdecl std::char_traits<char>::length(char const *)" (?length@?$char_traits@D@std@@SAIPBD@Z) already defined in SoundTouch.lib(SoundTouch.obj) msvcprt.lib
Error 453 error LNK2005: __invalid_parameter_noinfo already defined in MSVCRT.lib(MSVCR80.dll) LIBCMT.lib
Error 455 fatal error LNK1169: one or more multiply defined symbols found h:\comp\Avisynth\avisynth\src\Release\avisynth.dll 1
what the hell ... iam so old and stupid ??? :stupid:
VS2005 proffesional,Platform SDK (latest),DirectX SDK (latest),Windows Media SDK (latest), Windows KMDF + DDK (latest)
did you recompile soundtouch 1.3.0?
IanB
16th June 2006, 05:55
Please state which compiler you are using when asking for help!
The current code base is explicitly for Visual C++ 6 with the Processor Pack add on.
Using both 2003, 2005 and 2005 Express compilers is possible but will require some changes. Please feel free to openly discuss any issues you find so other may benefit from your experiences.
Be aware the 2005 RT environment changes the way system exceptions are handled and processed. So your builds may not respond as expected to error conditions.
devaster
16th June 2006, 22:30
did you recompile soundtouch 1.3.0?
Yes I have the latest source recompiled ...
devaster
16th June 2006, 22:34
I thing i have it :
is the problem in this that I must use a MSVCR60.dll not a MSVCR80.dll ???
MSVCR60.dll is located in distrib dir (i thing )
Sergejack2
9th July 2006, 17:22
I have VS 2005 Express and I want to create a filter.
What do I need to successfully compile it?
neuron2
9th July 2006, 17:24
You have everything you need. Have you tried to make one yet?
Sergejack2
9th July 2006, 17:37
You have everything you need. Have you tried to make one yet?
I don't know what I need (some sdk?).
I tried to compile it and I got an error (ml.exe cannot be found).
neuron2
9th July 2006, 18:20
If your filter has assembler, you need MASM:
http://www.microsoft.com/downloads/details.aspx?FamilyID=7a1c9da0-0510-44a2-b042-7ef370530c64&DisplayLang=en
Sergejack2
9th July 2006, 18:34
If your filter has assembler, you need MASM:
http://www.microsoft.com/downloads/details.aspx?FamilyID=7a1c9da0-0510-44a2-b042-7ef370530c64&DisplayLang=en
My filter doesn't but avisynth does.
Thanks.
EDIT : I can't install it, MASM doesn't recognize my VS2005Express (surely because it's the french version).
Well then "Best regards to Microsoft.".
foxyshadis
9th July 2006, 21:32
You need an updated Win2003 Platform SDK (http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en) with every version of VS2005, that might be why MASM is complaining. And even if it isn't, you don't need MASM for filters with inline asm, which is the vast majority. (You also don't need to recompile Avisynth to develop filters.) However, you can still get ahold of it by manually extracting it from the installer.
Sergejack2
10th July 2006, 12:10
You need an updated Win2003 Platform SDK (http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en) with every version of VS2005, that might be why MASM is complaining. And even if it isn't, you don't need MASM for filters with inline asm, which is the vast majority. (You also don't need to recompile Avisynth to develop filters.) However, you can still get ahold of it by manually extracting it from the installer.
It didn't help to install MASM.
Now, I have a solution with the avisynth project and my filter's project but when I try to generate my project only, files from the avisynth project aren't found (ie : avisynth.h).
EDIT : I got through it the heavy way, including each and every dir of avisynth in the directories to include.
I'm sure there's a more convenient yet to be discovered somehow hidden way to do it.
foxyshadis
10th July 2006, 20:32
I usually just start my projects from an existing filter, if you look at their sources the only part of avisynth included is avisynth.h (which usually should be in the same folder as your filter). Simplesample is a good way to start, it should compile a working filter right out of the box.
Fizick
2nd December 2006, 15:27
what is PFC.LIB ? Is it part of foobar2k SDK?
what it doing? :)
IanB
3rd December 2006, 03:17
See avisynth2\avisynth\src\audio\supereq.h and ssrc.h it's used in Naoki Shibata's audio code.
foxyshadis
18th December 2006, 10:02
Ian, the 2.6 branch still isn't populated on sf.net. It it possible to get a source tarball, since the installer doesn't include one, or at a minimum the latest avisynth.h?
IanB
18th December 2006, 12:25
Access branch "avisynth_2_6" in the main tree. The empty 2.6 directory is a furphy caused by someone finger trouble.
See http://avisynth2.cvs.sourceforge.net/avisynth2/avisynth/src/?pathrev=avisynth_2_6
Jocko Homo
8th January 2007, 16:09
I'm having trouble building from the source for 2.5.7-RC3.
I get this error when building DirectShowSource():
avisynth\src\plugins\directshowsource\directshow_source.cpp(590) : error C3861: 'lstrcpyWInternal': identifier not found
Now, I know someone is going to say that it's in wxutil.h but it's commented out (by Microsoft!) and for a reason. It's not available in the library so it will just result in an unresolved symbol.
Any help is greatly appreciated.
Thank you...
Jocko Homo
8th January 2007, 16:10
Perhaps, more importantly, when building the avisynth project, in particular, I get the following error:
.\convert\convert_a.asm(290) : error A2070: invalid instruction operands...in response to this code:
YUV2RGB_PROC MACRO procname,uyvy,rgb32
; ...lots of code in between...
YUV2RGB_PROC mmx_YUY2toRGB24,0,0
How do I get my assembler to assemble this?
Thank you...
Fizick
8th January 2007, 16:16
It seems, that I know aswer to your second question only,
about convert_a.asm
Probably you use masm8. I fixed convert_a.asm in avisynth2.6 branch for masm8 compatibility. See link http://avisynth2.cvs.sourceforge.net/avisynth2/avisynth/src/?pathrev=avisynth_2_6
Jocko Homo
8th January 2007, 22:12
Okay, something seriously weird is going on.
First of all, I guess I should confess that I'm trying to compile Avisynth using the very latest MS development environment, VC++ 2005 Pro. There's absolutely no reason why this shouldn't work but it's not working.
Now, the weird thing is that the project is trying its damndest to link against libc.lib. There are actually two weird things. First, I have no libc.lib library. You'd think that I would have a copy of the standard C library but it's nowhere to be found on my system. Secondly, the project desperately wants to link against this library and ignores anything else I have to say. I have specified that this library should be ignored but the linker is, in fact ignoreing me and tries to link against it anyways! What the hell is that!
I have no idea what's going on anymore and the world makes no sense whatsoever and no one else in the world is experiences what I am if google and the internet mean anything at all...
Any help is greatly appreciated. Thank you...
Fizick
8th January 2007, 22:34
official Avisynth 2.5.7 compiler environment is VC6.
Other is not officially supported.
But some people can compile it with vc7 - vc8 (?)
For other compiler you must recompile some libraries (soundtouch etc).
It is partial mess, but it is so. This world is not perfect. :)
Try re-read whole this thread.
Migration to more new compiler of next version 2.6 is currently considered and discussed.
http://forum.doom9.org/showthread.php?t=112138
Final question: WHY you want compiler avisynth? :)
foxyshadis
8th January 2007, 23:05
The only reason I have a debug avisynth.dll sitting around is it makes it a lot easier to debug memory leaks in plugins (caused by using the API wrong, not just forgetting a delete/free) and places where the crash occurs when the plugin calls avisynth with bad input.
You have to put "LIBC" in the "ignored specific library" in linker input, otherwise that happens. libc.lib won't work. I guess you already got all the compiler errors worked around.
Jocko Homo
8th January 2007, 23:40
Final question: WHY you want compiler avisynth? :)Good question. I want to try something really crazy... I'm a little afraid to announce it prematurely but I suppose there's little harm...
I want to change the Avisynth language syntax. I want to change it in a very big way. In fact, I'm planning on embedding Ruby (http://www.ruby-lang.org/en/) into Avisynth as the language implementation.
Pretty crazy, eh?
Jocko Homo
8th January 2007, 23:42
The only reason I have a debug avisynth.dll sitting around is it makes it a lot easier to debug memory leaks in plugins (caused by using the API wrong, not just forgetting a delete/free) and places where the crash occurs when the plugin calls avisynth with bad input.
You have to put "LIBC" in the "ignored specific library" in linker input, otherwise that happens. libc.lib won't work. I guess you already got all the compiler errors worked around.That's what I was talking about when I said weird things are happening. I did put libc.lib in the "ignore specific library" linker option and the linker chose to ignore me and link against it anyway! What the hell is that? Talk about a compiler bug...
Fizick
8th December 2007, 15:23
Note.
Recently some files on CVS tree were changed from being binary type to normal text type:
avisynth.dsw, avisynth.dsp, pfc.dsp
It is not a problem for fresh CVS update to new empty local folder.
But if you update to existing local folders with cvs (hidden) subfolder, these files will be updated as (now wrong) binary type, you will get unix LF instead of CRLF lines ends.
Bad news: MS Visual Studio do not understand files with LF.
Reason: Text files are always stored as unix type (with LF) at CVS server and automatically converted from and to windows type (CRLF) by TortoiseCVS (CVSNT).
Binary files are not converted.
Workaround 1. Edit and change your file locally from LF to CRLF with some text editor Ultraedit, Akelpad, etc. But it is temporary solution.
Workaround 2 (Better):
1. Go to your hidden CVS subfolder and edit "Entries" file,
delete "-kb" from the line (or remove this line completely):
/avisynth.dsw/1.6/Sat Sep 8 20:32:55 2007/-kb/
2. Delete your local avisynth.dsw
Same for other files (avisynth.dsp, pfc.dsp)
3. Update from CVS server.
New file will have correct type.
kemuri-_9
1st April 2008, 05:37
I've been using AVS for a good bit of time and wanted to see what was coming up in to-be-released official versions so i started about compiling it on my machine.
I've successfully done the current CVSs of the 2.5 and 2.6 branches in MSVC9 (.NET 2008), but am having some problems with 3.0 since the boost library doesn't seem to work with MSVC9.
Is there any workaround for this, because i don't want to have to get MSVC8 for AVS 3.0 when i have previous versions working in MSVC9.
I just built 2.6 and am going to start experimenting, but have been using 2.5.8 without any problems.
Any help would be appreciated.
Ajax_Undone
26th May 2008, 07:42
There is a new version of boost 1.35.0 I have beee successful in compiling both boost and AVIsynth give em a try...
tacman1123
27th June 2008, 16:21
@ajax -- were you able to compile all of Avisynth under boost? What version of avisynth did you use, and can you share any details about the process? Were you also able to compile plugins? Actually, I'm more interested in the plugins than the main avisynth program itself, and while there's lots of information about creating plugins, I'm still not sure what tool/tools I'd need to create one for 2.57 or 2.58.
Gavino
28th June 2008, 00:41
while there's lots of information about creating plugins, I'm still not sure what tool/tools I'd need to create one for 2.57 or 2.58.
Hola, tac. See here (http://avisynth.org/mediawiki/Filter_SDK/SDK_necessaries).
I have been successfully using the (free) Visual C++ Toolkit 2003.
kemuri-_9
7th July 2008, 03:08
I just got a fresh cvs of avs 2.6 and i had to modify the vc8 projects and a bit of code to get it to be able to even build
things i can remember doing are
aften_static
Source Files > x86_cpu_caps_detect.nasm
Custom Build Step
Command Line > Remove directory from nasm(w).exe
- (should be in the vc++ bin directories, so shouldn't need the directory for it)
Source Files > x86_cpu_caps.c
"asm_support.h" non existent, use #undef HAVE_CPU_CAPS_DETECTION
before #ifdef
libmp3lame
Source Files > Asm
all files > discrepency in 'nasm.exe' vs other projects using 'nasmw.exe'
commands switched to
nasm -f win32 -I i386\ -DWIN32 "$(InputPath)" -o $(OutDir)\$(InputName).obj
to build properly
C/C++ > General
Additional Include Directories > add > .
SoundOut
Source Files > convertaudio.cpp
add #include <limits.h>
change MIN_INT to INT_MIN
change MAX_INT to INT_MAX
vorbis_static
C/C++ > General
Additional Include Directories > add > ..\..\..\h & ..\..\..\..\h
(some items are in deeper than the others)
vorbisenc_static
C/C++ > General
Additional Include Directories > add > ..\..\..\h
so if this could be taken care of in any way, would be appreciated.
bigboss97
23rd August 2009, 14:23
I followed the intruction in wiki and googled through all my problems. Now I'm stuck in:
TCPDeliver
LINK : fatal error LNK1104: cannot open file 'nafxcwd.lib'
I can only find the file under 64bit directory of my SDK. Is this something from MFC?
I read that MFC is not in the SDK. I can compile avisynth 2.57 with 2005 Express?
Here is another problem in the project:
avisynth
Project : error PRJ0019: A tool returned an error code from "Assembling c:\work\CPP\avisynth_257\src\convert\convert_a.asm..."
Thanks
Phuoc
Fizick
23rd August 2009, 20:28
for second, you need in Masm (download masm8 from microsoft).
vBulletin® v3.8.4, Copyright ©2000-2010, Jelsoft Enterprises Ltd.