OCCIC++/UR/BI/LD:无法找到-LoCII CalpTe2:LD使用Mag文件返回1退出状态的并发时间错误 这里我在CITOS操作系统中有OCII C++应用程序。当我用make文件编译我的应用程序时,我得到/Ur/bin /LD:不能找到-LoCII Calpult2:LD返回1退出状态错误。

OCCIC++/UR/BI/LD:无法找到-LoCII CalpTe2:LD使用Mag文件返回1退出状态的并发时间错误 这里我在CITOS操作系统中有OCII C++应用程序。当我用make文件编译我的应用程序时,我得到/Ur/bin /LD:不能找到-LoCII Calpult2:LD返回1退出状态错误。,c++,oracle,makefile,centos6,occi,C++,Oracle,Makefile,Centos6,Occi,Employees.cpp文件还包括:- #include "Employees.h" using namespace std; using namespace oracle::occi; int main (void) { Employees *pEmployees = new Employees(); pEmployees->List(); delete pEmployees; cout

Employees.cpp文件还包括:-

 #include "Employees.h"
    using namespace std;
    using namespace oracle::occi;

    int main (void)
    {
        Employees *pEmployees = new Employees();
        pEmployees->List();
        delete pEmployees;
        cout << "ENTER to continue...";
        cin.get();
        return 0;
    }

    Employees::Employees()
    {
        user = "sys";
        passwd = "sis123";
        db = "oel01:1521/OEL11GR1.SAND";
        env = Environment::createEnvironment(Environment::DEFAULT);
        try
       {
          con = env->createConnection(user, passwd, db);
       }
       catch (SQLException& ex)
       {
         cout << ex.getMessage();
       }
    }

    Employees::~Employees()
    {
        env->terminateConnection (con);
        Environment::terminateEnvironment (env);
    }

    void Employees::List()
    {
      /*
       * simple test method to select data from
       * the employees table and display the results
       */
        Statement *stmt = NULL;
        ResultSet *rs = NULL;
        string sql = "select employee_id, first_name, last_name " \
                   "from employees order by last_name, first_name";

        try
       {
         stmt = con->createStatement(sql);
       }
       catch (SQLException& ex)
      {
        cout << ex.getMessage();
       }
      if (stmt)
      {
        try
        {
          stmt->setPrefetchRowCount(32);
          rs = stmt->executeQuery();
        }
        catch (SQLException& ex)
        {
          cout << ex.getMessage();
        }
        con->terminateStatement(stmt);
      }
   }

sqlclient occi库已安装在centos的/usr/include/oracle/11.1/client目录中
问题出在make file上,请帮助我

如果从makefile中的-I参数到oracle头的路径是$oracle\u HOME//usr/include/oracle/11.1/client,那么我发现从makefile中的-L参数到库的路径不太可能是$oracle\u HOME,我觉得更可能是这样$ORACLE_HOME//usr/lib/ORACLE/11.1/client或类似的东西。

libocci.a/libocci.so库在哪里?/usr/include/ORACLE/11.1/client在这个目录中我做了,但它是相同的?@sis那么这可能不是正确的路径。你需要找到正确的路径并使用它。根据您对我的评论的回答,路径似乎是/usr/include/oracle/11.1/client,虽然这有点奇怪,但可能oracle就是这样做的。您在centos occi库中知道的通常路径是什么?或者我应该重新安装即时客户端,如果你说是的,请给我一些合适的安装方法Thanks@sis我对甲骨文一无所知。但这个问题不是针对oracle的。在非标准位置有一个库,因此需要将该路径告知编译器/链接器。这就是我的目的。将该路径设置为包含libocci.a或libocci.so文件的路径,它应该可以工作。
#include <occi.h>
#include <iostream>
#include <iomanip>
using namespace oracle::occi;
using namespace std;
class Employees {
    public:
    Employees();
    virtual ~Employees();
    void List();
    private:
    Environment *env;
    Connection  *con;
    string user;
    string passwd;
    string db;
};
Employees: Employees.cpp
    g++ -o Employees Employees.cpp \
    -I$(ORACLE_HOME)//usr/include/oracle/11.1/client \
    -L$(ORACLE_HOME) -lclntsh -locci

debug: Employees.cpp
    g++ -ggdb3 -o Employees Employees.cpp \
    -I$(ORACLE_HOME)/usr/include/oracle/11.1/client \
    -L$(ORACLE_HOME) -lclntsh -locci
clean:
    rm -f Employees