Пытается скомпилировать этот код на C++ с помощью gcc
в Linux. Он использует внешнюю библиотеку/приложение SCIP./usr/bin/ld: Не удается найти -l Ошибка (с использованием GCC в Linux GCC Linker Error)
Я компиляции, используя этот код:
gcc TestC.cpp -I./scipF/scip/src -L./scipF/scip/lib -l./scipF/scip/lib/libscip.a
, но я получаю эту ошибку:
/usr/bin/ld: cannot find -l./scipF/scip/lib/libscip.a
Файл находится в папке. Не знаю, почему он не выбирает его, чтобы связать
#include <iostream>
#include "objscip/objscip.h"
#include "objscip/objscipdefplugins.h"
/** reads parameters */
static
SCIP_RETCODE readParams(
SCIP* scip, /**< SCIP data structure */
const char* filename /**< parameter file name, or NULL */
)
{
if(filename != NULL)
{
if(SCIPfileExists(filename))
{
std::cout << "reading parameter file <" << filename << ">" << std::endl;
SCIP_CALL(SCIPreadParams(scip, filename));
}
else
std::cout << "parameter file <" << filename << "> not found - using default parameters" << std::endl;
}
else if(SCIPfileExists("scipmip.set"))
{
std::cout << "reading parameter file <scipmip.set>" << std::endl;
SCIP_CALL(SCIPreadParams(scip, "scipmip.set"));
}
return SCIP_OKAY;
}
/** starts SCIP */
static
SCIP_RETCODE fromCommandLine(
SCIP* scip, /**< SCIP data structure */
const char* filename /**< input file name */
)
{
/********************
* Problem Creation *
********************/
std::cout << std::endl << "read problem <" << filename << ">" << std::endl;
std::cout << "============" << std::endl << std::endl;
SCIP_CALL(SCIPreadProb(scip, filename, NULL));
/*******************
* Problem Solving *
*******************/
/* solve problem */
std::cout << "solve problem" << std::endl;
std::cout << "=============" << std::endl;
SCIP_CALL(SCIPsolve(scip));
std::cout << std::endl << "primal solution:" << std::endl;
std::cout << "================" << std::endl << std::endl;
SCIP_CALL(SCIPprintBestSol(scip, NULL, FALSE));
/**************
* Statistics *
**************/
std::cout << std::endl << "Statistics" << std::endl;
std::cout << "==========" << std::endl << std::endl;
SCIP_CALL(SCIPprintStatistics(scip, NULL));
return SCIP_OKAY;
}
/** starts user interactive mode */
static
SCIP_RETCODE interactive(
SCIP* scip /**< SCIP data structure */
)
{
SCIP_CALL(SCIPstartInteraction(scip));
return SCIP_OKAY;
}
/** creates a SCIP instance with default plugins, evaluates command line parameters, runs SCIP appropriately,
* and frees the SCIP instance
*/
static
SCIP_RETCODE runSCIP(
int argc, /**< number of shell parameters */
char** argv /**< array with shell parameters */
)
{
SCIP* scip = NULL;
/*********
* Setup *
*********/
/* initialize SCIP */
SCIP_CALL(SCIPcreate(&scip));
/***********************
* Version information *
***********************/
SCIPprintVersion(scip, NULL);
std::cout << std::endl;
/* include default SCIP plugins */
SCIP_CALL(SCIPincludeDefaultPlugins(scip));
/**************
* Parameters *
**************/
if(argc >= 3)
{
SCIP_CALL(readParams(scip, argv[2]));
}
else
{
SCIP_CALL(readParams(scip, NULL));
}
/*CHECK_OKAY(SCIPwriteParams(scip, "scipmip.set", TRUE));*/
/**************
* Start SCIP *
**************/
if(argc >= 2)
{
SCIP_CALL(fromCommandLine(scip, argv[1]));
}
else
{
printf("\n");
SCIP_CALL(interactive(scip));
}
/********************
* Deinitialization *
********************/
SCIP_CALL(SCIPfree(&scip));
BMScheckEmptyMemory();
return SCIP_OKAY;
}
/** main method starting SCIP */
int main(
int argc, /**< number of arguments from the shell */
char** argv /**< array of shell arguments */
)
{
SCIP_RETCODE retcode;
argc = 3;
argv [2]= "InputFile";
retcode = runSCIP(argc, argv);
if(retcode != SCIP_OKAY)
{
SCIPprintError(retcode);
return -1;
}
return 0;
}