-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathDIARY.TXT
executable file
·105 lines (72 loc) · 6.1 KB
/
DIARY.TXT
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
- (Windows) When testing custom spinlock implementation using
InterlockedCompareExchange() and InterlockedExchange(), I was getting
corrupted data.
Turns out, you have to align all arguments to the interlocked
functions on 32-bit boundaries.
- (MacOSX) Had to add this to includes.h:
#undef check
in order to compile csound~. Seems like check is a Mac OSX macro?
- (MacOSX) To build boost.thread and boost.serialization, goto boost dir and:
$ ./bootstrap.sh
$ ./bjam serialization variant=debug,release link=static threading=multi
$ ./bjam thread variant=debug,release link=static threading=multi
$ cp bin.v2/libs/serialization/build/darwin-4.0.1/release/link-static/threading-multi/libboost_serialization.a ./_libs/
$ cp bin.v2/libs/thread/build/darwin-4.0.1/release/link-static/threading-multi/libboost_thread.a ./_libs/
To clean:
$ ./bjam clean
- Kept getting _CrtIsValidHeapPointer(pUserData) assertion failures due to
MemoryFree() doing a realloc() before free() in an effort to detect
freeing of non-allocated memory. That was stupid... :|
- To build boost.thread and boost.serialization, goto boost dir and:
$ bjam clean
$ bjam serialization link=static threading=multi variant=debug,release runtime-link=static,shared runtime-debugging=on,off
$ bjam thread link=static threading=multi variant=debug,release runtime-link=static,shared runtime-debugging=on,off
Use Explorer to find all *.lib files in /bin.v2 directory. Copy all files to: D:\boost_1_44_0_beta1\_libs
To clean:
$ bjam clean
- Successful Debug build combo:
Linker -> General -> Additional Library Directories: D:\boost_1_44_0_beta1\_libs
Linker -> Input -> Additional Dependencies:
.\..\..\c74support\max-includes\MaxAPI.lib
.\..\..\c74support\msp-includes\MaxAudio.lib
D:\pthreads\lib\pthreadGC2.lib
D:\Csound\bin\csound64.lib
D:\libsndfile\libsndfile-1.lib
Linker -> Input -> Ignore Specific Default Libraries: maxcrt.lib
C/C++ -> Code Generation -> Runtime Library: Multi-threaded Debug DLL (/MDd)
- Received compilation error:
1>D:\boost_1_44_0_beta1\boost/fusion/container/list/cons_iterator.hpp(21): error C2332: 'struct' : missing tag name
1>D:\boost_1_44_0_beta1\boost/fusion/container/list/cons_iterator.hpp(21): error C2011: '<unnamed-tag>' : 'enum' type redefinition
1> C:\Users\Davis\Code\MaxSDK-5.0.6\c74support\msp-includes\z_dsp.h(28) : see declaration of '<unnamed-tag>'
Turns out that the Max headers define something called nil which boost::fusion also defines.
To fix, add this after including Max headers OR before including boost::spirit headers:
#undef nil
Then make sure all files include 1 file (that includes the max headers and this #undef).
- Got these errors:
1>C:\Users\Davis\Code\MaxSDK-5.0.6\c74support\msp-includes\buffer.h(11): error C2365: 'MAXCHAN' : redefinition; previous definition was 'enumerator'
1> C:\Users\Davis\Code\MaxSDK-5.0.6\c74support\msp-includes\buffer.h(11) : see declaration of 'MAXCHAN'
1>C:\Users\Davis\Code\MaxSDK-5.0.6\c74support\msp-includes\buffer.h(14): error C2365: 'bi_basefreq' : redefinition; previous definition was 'enumerator'
1> C:\Users\Davis\Code\MaxSDK-5.0.6\c74support\msp-includes\buffer.h(14) : see declaration of 'bi_basefreq'
1>C:\Users\Davis\Code\MaxSDK-5.0.6\c74support\msp-includes\buffer.h(15): error C2365: 'bi_detune' : redefinition; previous definition was 'enumerator'
1> C:\Users\Davis\Code\MaxSDK-5.0.6\c74support\msp-includes\buffer.h(15) : see declaration of 'bi_detune'
1>C:\Users\Davis\Code\MaxSDK-5.0.6\c74support\msp-includes\buffer.h(16): error C2365: 'bi_lowfreq' : redefinition; previous definition was 'enumerator'
1> C:\Users\Davis\Code\MaxSDK-5.0.6\c74support\msp-includes\buffer.h(16) : see declaration of 'bi_lowfreq'
1>C:\Users\Davis\Code\MaxSDK-5.0.6\c74support\msp-includes\buffer.h(17): error C2365: 'bi_hifreq' : redefinition; previous definition was 'enumerator'
1> C:\Users\Davis\Code\MaxSDK-5.0.6\c74support\msp-includes\buffer.h(17) : see declaration of 'bi_hifreq'
1>C:\Users\Davis\Code\MaxSDK-5.0.6\c74support\msp-includes\buffer.h(18): error C2365: 'bi_lowvel' : redefinition; previous definition was 'enumerator'
1> C:\Users\Davis\Code\MaxSDK-5.0.6\c74support\msp-includes\buffer.h(18) : see declaration of 'bi_lowvel'
1>C:\Users\Davis\Code\MaxSDK-5.0.6\c74support\msp-includes\buffer.h(19): error C2365: 'bi_hivel' : redefinition; previous definition was 'enumerator'
1> C:\Users\Davis\Code\MaxSDK-5.0.6\c74support\msp-includes\buffer.h(19) : see declaration of 'bi_hivel'
1>C:\Users\Davis\Code\MaxSDK-5.0.6\c74support\msp-includes\buffer.h(20): error C2365: 'bi_gain' : redefinition; previous definition was 'enumerator'
1> C:\Users\Davis\Code\MaxSDK-5.0.6\c74support\msp-includes\buffer.h(20) : see declaration of 'bi_gain'
1>C:\Users\Davis\Code\MaxSDK-5.0.6\c74support\msp-includes\buffer.h(22): error C2365: 'bi_numparams' : redefinition; previous definition was 'enumerator'
1> C:\Users\Davis\Code\MaxSDK-5.0.6\c74support\msp-includes\buffer.h(22) : see declaration of 'bi_numparams'
1>C:\Users\Davis\Code\MaxSDK-5.0.6\c74support\msp-includes\buffer.h(29): error C2011: '_buffer' : 'struct' type redefinition
1> C:\Users\Davis\Code\MaxSDK-5.0.6\c74support\msp-includes\buffer.h(29) : see declaration of '_buffer'
Fixed by moving:
#include "buffer.h"
from CsoundTable.h -> CsoundTable.cpp. Some sort of conflict between boost.spirit (included by Parser.h) and a max header.
- To make compilation faster, moved:
#include "Parser.h"
from sequencer.h -> sequencer.cpp. That way, files that include sequencer.h will compile faster.