Wikipedia
Differentialgleichung
Gewöhnliche Differentialgleichung
Lineare gewöhnliche Differentialgleichung
Partielle Ableitung
Differentialgleichung RC-Glied
Differentialgleichung
Gewöhnliche Differentialgleichung
Lineare gewöhnliche Differentialgleichung
Partielle Ableitung
Differentialgleichung RC-Glied
Schon viele male habe ich beim Linken solch eine Fehlermeldung bekommen:
main.c:(.text+0x4b908): undefined reference to `clock_gettime'
Lösung kann sein, dass alle Object-Dateien VOR den Libraries sein müssen:
$ gcc main.o -lpthread -lr -o main
Zuvor habe ich https://rom.zhaw.ch/svn/simulation/ ausgecheckt mit TortoiseSVN und wollte dann mit IntelliJ nur noch updaten/commiten. Hat leider nicht funktioniert, wie auch im Link erklärt:
Problem using TortoiseSVN and IntelliJ 8.1
Musste danach im C:\Users\bachi\Documents\FH\Repository\simulation das .svn Verzechnis löschen und die beiden Module einzeln auschecken.
Mit diesem Code kann man bei Laufzeit Resourcen laden, die im CLASSPATH sind:
URL myurl = this.getClass().getResource("/myimage.gif");
URL url = IconSVG.class.getResource("svg/" + file + ".svg");
Bei IntelliJ werden Sourcen kompiliert und das Kompilat in ein eigenes Verzechnis gespeichert (z.B. C:\Users\bachi\Documents\FH\Repository\simulation\trunk\Simulation\bin). Die Resourcen (alles, was keine Java-Sourcen sind), die sich im Source-Verzechnis befinden, werden kopiert, wenn sie einem Pattern entsprechen:
?*.properties;?*.xml;?*.gif;?*.png;?*.jpeg;?*.jpg;?*.html;?*.dtd;?*.tld;?*.ftl
Da SVG-Dateien nicht dem Pattern entsprechen, werden sie nicht kopiert.
Lösung ist in den Settings->Compiler das Pattern anzupassen:
[...];?*.svg
TOPLEVEL = .
SUBDIRS = \
obj
all : all_sub Aufgabe9
include $(TOPLEVEL)/Makefile.inc
STATIC_LIBRARY = obj/lib.a \
obj/planet/lib.a
Aufgabe9 : $(STATIC_LIBRARY)
$(CC) -o $@ obj/main.o $(STATIC_LIBRARY) $(LDFLAGS)
CC = g++ AR = ar CFLAGS = `sdl-config --cflags` -I/usr/glew/include -I$(TOPLEVEL)/include -D_REENTRANT -Wall -std=gnu++0x LDFLAGS = `sdl-config --libs` -L/usr/glew/lib -lopengl32 -lglu32 -lglew32 -lSDL_ttf OBJECT = $(SOURCES:%.cxx=%.o) # CFLAGS = -IC:\MinGW\msys\1.0\libsdl\include\SDL -D_GNU_SOURCE=1 -Dmain=SDL_main -I$(TOPLEVEL)/include -D_REENTRANT -Wall # LDFLAGS = -LC:\MinGW\msys\1.0\libsdl\lib -lmingw32 -lSDLmain -lSDL -mwindows -lopengl32 -lglu32 -lSDL_ttf all_sub: if test "$(SUBDIRS)" != ""; then \ for subdir in $(SUBDIRS); do \ (cd $$subdir; make all); \ done; \ fi; clean: clean_sub rm -f *.o *.a $(CLEANFILES) clean_sub: if test "$(SUBDIRS)" != ""; then \ for subdir in $(SUBDIRS); do \ (cd $$subdir; make clean); \ done; \ fi; $(LIBRARY): $(OBJECT) $(AR) rcu $(LIBRARY) $(OBJECT) # $(AR) rcs $(LIBRARY) $(OBJECT) %.o: $(TOPLEVEL)/$(CURRENT)/%.cxx $(CC) -c $(CFLAGS) $< .SILENT: all_sub clean_sub
CURRENT = src
TOPLEVEL = ..
LIBRARY = lib.a
SUBDIRS = \
planet
SOURCES = \
main.cxx \
GLSL.cxx \
textfile.cxx \
Vector.cxx \
Matrix.cxx \
Keyboard.cxx \
Settings.cxx \
Game.cxx \
Camera.cxx \
Light.cxx \
Texture.cxx \
TextureFactory.cxx \
World.cxx \
text.cxx \
Debug.cxx \
3ds.cxx \
Ship.cxx \
Shot.cxx \
Billboard.cxx \
Explosion.cxx \
DisplayList.cxx
include $(TOPLEVEL)/Makefile.inc
all: all_sub $(LIBRARY)
CURRENT = src/planet TOPLEVEL = ../.. LIBRARY = lib.a SUBDIRS = SOURCES = \ Planet.cxx \ Ring.cxx \ Sun.cxx \ Earth.cxx \ EarthMoon.cxx \ Jupiter.cxx \ Mars.cxx \ Mercury.cxx \ Neptun.cxx \ Pluto.cxx \ Saturn.cxx \ Saturnring.cxx \ Uranus.cxx \ Venus.cxx include $(TOPLEVEL)/Makefile.inc all: all_sub $(LIBRARY)
SDL-1.2.14.tar.gz SDL_ttf-2.0.11.tar.gz freetype-2.4.8.tar.gz glew-1.7.0.tgz
$ cd SDL-1.2.14 $ ./configure --prefix=/usr/libsdl --enable-stdio-redirect=no $ cd freetype-2.4.8 $ ./configure --prefix=/usr/freetype2 $ cd SDL_ttf-2.0.11 $ ./configure --prefix=/usr/libsdl $ cd glew-1.7.0 $ sed -i 's/GLEW_DEST ?= \/usr/GLEW_DEST ?= \/usr\/glew/g' Makefile $ make install.all
export PATH=$PATH:/usr/libsdl/bin:/usr/freetype2/bin:/usr/glew/bin
1. Die anzuheftende Batchdatei von batch.bat nach batch.exe umbenennen.
2. Die Batchdatei nun in die Taskleiste ziehen und anheften.
3. Nun die original Batchdatei wieder umbenennen in batch.bat.
4. Mit gedrückter Shift-Taste mit der rechten Mausstaste auf die Verknüpfung klicken und auf Eigenschaften klicken.
5. Unter Ziel nun den korrekten Pfad zur Batchdatei eingeben. Es reicht aus, aus dem .exe ein .bat zu machen.
#ifndef UNICODE
#define UNICODE
#endif
#include <windows.h>
LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR pCmdLine, int nCmdShow)
{
// Register the window class.
const wchar_t CLASS_NAME[] = L"Sample Window Class";
WNDCLASS wc = { };
wc.lpfnWndProc = WindowProc;
wc.hInstance = hInstance;
wc.lpszClassName = CLASS_NAME;
RegisterClass(&wc);
// Create the window.
HWND hwnd = CreateWindowEx(
0, // Optional window styles.
CLASS_NAME, // Window class
L"Learn to Program Windows", // Window text
WS_OVERLAPPEDWINDOW, // Window style
// Size and position
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
NULL, // Parent window
NULL, // Menu
hInstance, // Instance handle
NULL // Additional application data
);
if (hwnd == NULL)
{
return 0;
}
ShowWindow(hwnd, nCmdShow);
// Run the message loop.
MSG msg = { };
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
}
LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch (uMsg)
{
case WM_DESTROY:
PostQuitMessage(0);
return 0;
case WM_PAINT:
{
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hwnd, &ps);
FillRect(hdc, &ps.rcPaint, (HBRUSH) (COLOR_WINDOW+1));
EndPaint(hwnd, &ps);
}
return 0;
}
return DefWindowProc(hwnd, uMsg, wParam, lParam);
}