Changes between Version 7 and Version 8 of AppDev
- Timestamp:
- Sep 7, 2011, 4:32:23 PM (13 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
AppDev
v7 v8 14 14 == Windows-specific issues == 15 15 16 * The set of 'standard' DLL differs somewhat among 9X/NT/2000/XP. To avoid crashing because a DLL is missing, call {{{::LoadLibrary()}}} and then get function pointers.17 16 * Visual Studio: set 'Create/Use Precompiled Header' to 'Automatically Generate' ({{{/YX}}}) in C/C++ Precompiled Header project properties. 18 17 * Visual Studio: change 'Compile As' to 'Compile as C++ Code ({{{/TP}}})' in C/C++ 'Compile As' project properties. … … 21 20 22 21 === Shared libraries === 22 23 23 Your application can use shared libraries (.so). 24 24 Include these as separate files. … … 34 34 35 35 But what if there are multiple shared libraries, and some depend on others? 36 It may be difficult to change the Makefiles to use distinct names.36 It may be difficult to change the Makefiles to use these distinct names. 37 37 Here's what you can do to solve this problem: 38 38 39 * Give each shared library [UpdateVersions#extrainfo a name of the form PHYSICAL=LOGICAL].40 * Require client version 6.1.11 or greater. On Unix, these clients create symbolic links from the slot directory to the project directory, and the append the slot directory to LD_LIBRARY_PATH.39 * Give each shared library its 'natural' name (e.g., libfoo.so) as its logical name. 40 * Give shared libraries the "copy_file" attribute. 41 41 42 === Stack size === 43 Several BOINC projects have experienced application crashes that turned out to be stack overflow. 44 This can be fixed by calling: 45 {{{ 46 rlimit rlp; 47 48 getrlimit(RLIMIT_STACK, &rlp); 49 rlp.rlim_cur = rlp.rlim_max; 50 setrlimit(RLIMIT_STACK, &rlp); 51 }}} 52 before initializing BOINC. 53 54 == Compression == 55 56 If you release new versions frequently, 57 have a large executable, and want to conserve server bandwidth, 58 you may want to compress your executable. 59 The best way to do this is with [http://upx.sourceforge.net/ Ultimate Packer for eXecutables (UPX)]. 42 The client will then copy these libraries into the app's execution directory, 43 giving it the logical name.