所以,我又来了,伙计们。经过一整天试图找出链接 libmysql.lib 和 mysqlclient.lib 的解决方案后,我彻底完成了。所以,在那里,我决定采取另一种方式,使用方便的 MySQL 连接器。
由于它的 1.1.0 版本使用了 boost,而我没有可用的,也不想花时间去弄清楚一切,我决定下载 1.0.5。
所以,我安装了它,创建了新项目,链接了所有必要的库,设置了额外的库和包含(嗯,通常,按照 this 手册完成所有操作。为了测试它是否正常工作,我使用了这样的示例:
#include <stdlib.h>
#include <iostream>
#include "driver.h"
#include "exception.h"
#include "resultset.h"
#include "statement.h"
#include "prepared_statement.h"
int main(){
sql::Driver *driver;
sql::Connection *con;
sql::Statement *stmt;
sql::ResultSet *res;
sql::PreparedStatement *pstmt;
try{
driver = get_driver_instance();
con = driver->connect("localhost", "root", "root");
con->setSchema("test");
/*blah blah yada yada*/
}catch(sql::SQLException &e){
std::cout<<e.what();
}
}
我跳过了部分代码,因为这不是重点。所以,这个问题是应用程序错误告诉无法正确启动(0xc000007b)。调试并没有太大帮助,因为这个错误在程序运行时就发生了,即即使我在开始时设置了无限循环,它仍然会崩溃。
所以,我想:“这应该是这个版本的一些错误,所以我必须尝试更新一个”。在此之后,我继续下载了 1.1.0 版的连接器以及 boost 库。比创建新项目,像第一个一样设置所有依赖项,但指向较新版本的连接器。除此之外,我设置了新的引用 mysqlcppconn_EXPORTS。因此,准备工作已经完成,出于测试目的,我使用了 MySQL site 中的代码,嗯,一般来说,是这样的:
/*tons of includes here*/
int main(int argc, const char *argv[]) {
Driver *driver;
Connection *con;
Statement *stmt;
ResultSet *res;
PreparedStatement *prep_stmt;
Savepoint *savept;
int updatecount = 0;
/* initiate url, user, password and database variables */
string url(argc >= 2 ? argv[1] : DBHOST);
const string user(argc >= 3 ? argv[2] : USER);
const string password(argc >= 4 ? argv[3] : PASSWORD);
const string database(argc >= 5 ? argv[4] : DATABASE);
try {
driver = get_driver_instance();
/*blah blah yada yada*/
} catch (std::runtime_error &e) {
cout << "ERROR: runtime_error in " << __FILE__;
//cout << " (" << __func__ << ") on line " << __LINE__ << endl;
cout << "ERROR: " << e.what() << endl;
return EXIT_FAILURE;
}
return EXIT_SUCCESS;
} // main()
你猜怎么着?是的,这里又出现了链接器错误:
error LNK2001: unresolved external symbol _get_driver_instance
所以请任何人告诉我我做错了什么?将不胜感激。
我会明确说明并用粗体字写出来,这样就不会有任何答案了。我已经明确设置了 Preferences -> C/C++ -> General -> Additional Include Directories 以及 Preferences -> Linker -> General -> Additional Library Directories。
另外,我已将 mysqlcppconn.lib 放入 Preferences -> Linker -> Additional Dependencies。
此外,我已将 mysqlcppconn.dll 和 libmysql.dll(是的,来自各自的 C++ 连接器版本)放入我的项目文件夹中,不要有问题。
哦,是的,我在预处理器定义中尝试了使用和不使用 CPPCONN_PUBLIC_FUNC= 键 - 没有发生任何变化。
正如我所说 - 具有相同的项目偏好,1.0.5 版连接器在构建阶段失败,而 1.1.0 版 - 在编译阶段失败。
附言我正在使用 VS 2010,我的操作系统 - Windows 7 x64。项目和库都是 x32。
最佳答案
我遇到了同样的问题“无法正确启动 (0xc000007b)”。问题是我没有使用正确的 DLL(使用 x86 而不是 x64),即使我已经安装(并重新安装)了 64 位的 mysql。
我已将 PATH 变量“C:\MySQL\Connector C++ 1.1.3\lib\opt”添加到 mysqlcppconn.dll(用于 x64)所在的位置。尽管如此,在我的 PATH 中还有另一个目录(lua 安装),其中包含 mysqlcppconn.dll(对于 x86)。由于 x86 目录是在 MySQL 目录之前设置的,因此 x86 dll 已加载,因此“无法启动 ...”
为了避免这种情况,我已将 mysqlcppconn.dll 复制到我的项目调试目录中。
关于c++ - MySQL 连接器问题 - 链接甚至更多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12402891/
我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po
尝试通过RVM将RubyGems升级到版本1.8.10并出现此错误:$rvmrubygemslatestRemovingoldRubygemsfiles...Installingrubygems-1.8.10forruby-1.9.2-p180...ERROR:Errorrunning'GEM_PATH="/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/ruby-1.9.2-p180@global:/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/rub
我的瘦服务器配置了nginx,我的ROR应用程序正在它们上运行。在我发布代码更新时运行thinrestart会给我的应用程序带来一些停机时间。我试图弄清楚如何优雅地重启正在运行的Thin实例,但找不到好的解决方案。有没有人能做到这一点? 最佳答案 #Restartjustthethinserverdescribedbythatconfigsudothin-C/etc/thin/mysite.ymlrestartNginx将继续运行并代理请求。如果您将Nginx设置为使用多个上游服务器,例如server{listen80;server
我有一个表单,其中有很多字段取自数组(而不是模型或对象)。我如何验证这些字段的存在?solve_problem_pathdo|f|%>... 最佳答案 创建一个简单的类来包装请求参数并使用ActiveModel::Validations。#definedsomewhere,atthesimplest:require'ostruct'classSolvetrue#youcouldevencheckthesolutionwithavalidatorvalidatedoerrors.add(:base,"WRONG!!!")unlesss
我正在使用Sequel构建一个愿望list系统。我有一个wishlists和itemstable和一个items_wishlists连接表(该名称是续集选择的名称)。items_wishlists表还有一个用于facebookid的额外列(因此我可以存储opengraph操作),这是一个NOTNULL列。我还有Wishlist和Item具有续集many_to_many关联的模型已建立。Wishlist类也有:selectmany_to_many关联的选项设置为select:[:items.*,:items_wishlists__facebook_action_id].有没有一种方法可以
我的最终目标是安装当前版本的RubyonRails。我在OSXMountainLion上运行。到目前为止,这是我的过程:已安装的RVM$\curl-Lhttps://get.rvm.io|bash-sstable检查已知(我假设已批准)安装$rvmlistknown我看到当前的稳定版本可用[ruby-]2.0.0[-p247]输入命令安装$rvminstall2.0.0-p247注意:我也试过这些安装命令$rvminstallruby-2.0.0-p247$rvminstallruby=2.0.0-p247我很快就无处可去了。结果:$rvminstall2.0.0-p247Search
由于fast-stemmer的问题,我很难安装我想要的任何rubygem。我把我得到的错误放在下面。Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingfast-stemmer:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcreatingMakefilemake"DESTDIR="cleanmake"DESTDIR=
我使用的是Firefox版本36.0.1和Selenium-Webdrivergem版本2.45.0。我能够创建Firefox实例,但无法使用脚本继续进行进一步的操作无法在60秒内获得稳定的Firefox连接(127.0.0.1:7055)错误。有人能帮帮我吗? 最佳答案 我遇到了同样的问题。降级到firefoxv33后一切正常。您可以找到旧版本here 关于ruby-无法在60秒内获得稳定的Firefox连接(127.0.0.1:7055),我们在StackOverflow上找到一个类
当我尝试安装Ruby时遇到此错误。我试过查看this和this但无济于事➜~brewinstallrubyWarning:YouareusingOSX10.12.Wedonotprovidesupportforthispre-releaseversion.Youmayencounterbuildfailuresorotherbreakages.Pleasecreatepull-requestsinsteadoffilingissues.==>Installingdependenciesforruby:readline,libyaml,makedepend==>Installingrub
我正在使用Rails构建一个简单的聊天应用程序。当用户输入url时,我希望将其输出为html链接(即“url”)。我想知道在Ruby中是否有任何库或众所周知的方法可以做到这一点。如果没有,我有一些不错的正则表达式示例代码可以使用... 最佳答案 查看auto_linkRails提供的辅助方法。这会将所有URL和电子邮件地址变成可点击的链接(htmlanchor标记)。这是文档中的代码示例。auto_link("Gotohttp://www.rubyonrails.organdsayhellotodavid@loudthinking.