我最近编译了 MySQL 并在 Cygwin 上工作,并从网上得到了一个简单的测试示例来验证它是否有效。测试示例编译并成功运行。
但是,当将 MySQL 合并到我的业余爱好项目中时,它没有编译,我认为这是由于 Makefile 的设置方式造成的,我没有使用 Makefile 的经验,在阅读了有关它们的教程后,我有了更好的掌握,但仍然可以'让它正常工作。
当我尝试编译我的爱好项目时,我收到如下错误:
Obj/Database.o:Database.cpp:(.text+0x492): undefined reference to `_mysql_insert_id'
Obj/Database.o:Database.cpp:(.text+0x4c1): undefined reference to `_mysql_affected_rows'
collect2: ld returned 1 exit status
make[1]: *** [build] Error 1
make: *** [all] Error 2
Run Code Online (Sandbox Code Playgroud)
这是我的 Makefile,在我尝试将 MySQL 支持放入项目之前,它用于编译和构建源代码。LIBMYSQL 路径正确,由“mysql_config”验证。
COMPILER = g++
WARNING1 = -Wall -Werror -Wformat-security -Winline -Wshadow -Wpointer-arith
WARNING2 = -Wcast-align -Wcast-qual -Wredundant-decls
LIBMYSQL = -I/usr/local/include/mysql -L/usr/local/lib/mysql -lmysqlclient
DEBUGGER = -g3
OPTIMISE = -O
C_FLAGS = $(OPTIMISE) $(DEBUGGER) $(WARNING1) $(WARNING2) -export-dynamic $(LIBMYSQL)
L_FLAGS …
Run Code Online (Sandbox Code Playgroud) 我注意到,当动态创建一个大画布(6400x6400)时,很多时候都不会在其上绘制任何东西,并且当将画布设置为小尺寸时,它会100%的时间工作,但是因为我没有我知道更好,我别无选择,只能尝试让大帆布正常工作.
thisObj.oMapCanvas = jQuery( document.createElement('canvas') ).attr('width', 6400).attr('height', 6400).css('border','1px solid green').prependTo( thisObj.oMapLayer ).get(0);
// getContext and then drawing stuff here...
Run Code Online (Sandbox Code Playgroud)
thisObj.oMapCanvas = jQuery( document.createElement('canvas') ).attr('width', 6400).attr('height', 6400).css('border','1px solid green').prependTo( thisObj.oMapLayer ).get(0);
// getContext and then drawing stuff here...
Run Code Online (Sandbox Code Playgroud)
画布的目的是简单地在两个节点(图像)之间绘制一条线,这两个节点位于可以拖动的div容器内(视口我认为人们称之为它们).
我"想"可能发生的是,在画布上调整大小会占用画布,这就干扰了上下文绘制,就像我之前说的那样,当画布很小时它会一直有效.
有没有人经历过这个和/或知道任何可能的解决方案?