我目前正在尝试使用C ++创建Firebird数据库。 Firebird安装在我的电脑上。 我的程序如下:
#define IBPP_WINDOWS = true
#define IBPP_GCC = true
#include "ibpp.h"
#include <fstream>
#include <iostream>
#include <sstream>
#include <vector>
#include <iostream>
#include <stdlib.h>
#include <sstream>
#include <cmath>
using namespace std;
using std::vector;
using std::string;
using std::ifstream;
using std::ofstream;
using std::getline;
using std::cin;
using std::cout;
using std::endl;
using std::istringstream;
int main(int argc, char *argv[])
{
std::string UserName = "SYSDBA";
std::string Password = "**********";
std::string ServerName = "localhost";
char* DbName = (char *)"C:/Users/**********/Desktop/**********.fdb";
IBPP::Database db = IBPP::DatabaseFactory(ServerName,DbName,UserName,Password);
db->Create();
db->Connect();
}
当我尝试编译代码时,收到以下消息:
C:\用户********** \应用程序数据\本地\ TEMP \ cc2Zhdj3.o:********** CPP :(文本$ _ZN4IBPP15DatabaseFactoryERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7 _ [__ ZN4IBPP15DatabaseFactoryERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_S7 _] +。 0xaa):未定义引用`IBPP :: DatabaseFactory(std :: __ cxx11 :: basic_string,std :: allocator&gt; const&amp;,std :: __ cxx11 :: basic_string,std :: allocator&gt; const&amp;,std :: __ cxx11 :: basic_string,std :: allocator&gt; const&amp;,std :: __ cxx11 :: basic_string,std :: allocator&gt; const&amp;,std :: __ cxx11 :: basic_string,std :: allocator&gt; const&amp;,std :: __cxx11 :: basic_string,std :: allocator&gt; const&amp;,std :: __ cxx11 :: basic_string,std :: allocator&gt; const&amp;)&#39; collect2.exe:错误:ld返回1退出状态
有谁知道我做错了什么?
答案 0 :(得分:1)
正如WhozCraig所述,您可能没有链接Firebird共享库。如果使用GCC尝试添加链接选项-libpp
,如果您使用的是MSVC,只需将IBPP .cpp文件添加到项目中或创建一个静态库并与之链接。
答案 1 :(得分:0)
这是错误的:
#define IBPP_WINDOWS = true
应该是:
#define IBPP_WINDOWS
答案 2 :(得分:0)
您可能已下载并解压缩文件夹ibpp-2-5-3-1-src
。在那里你应该找到包含文件all_in_one.cpp
的文件夹核心。
只需在文件(all_in_one.cpp)所在的路径的剩余部分插入#include "C:\remaining_path\ibpp-2-5-3-1-src\core\all_in_one.cpp"
,就可以在程序中包含此文件。
您不必另外包含ibpp标头,因为它已经包含在all_in_one文件中。
这样可以解决问题:)
顺便说一下:别介意在这里逗弄你的一堆骚动。他们似乎是完全的奴隶,只是做了权威告诉他们的,从来没有学会自己思考。我猜他们只是嫉妒,所以我说:没关系,你会去的地方!