scip를 C에 연결하기 위해 makefile을 사용하고 빌드하는 방법은 무엇입니까?

sherek_66

저는 C에서 아주 새로운 것입니다. scip에서 함수 중 하나를 사용하면됩니다. 다음과 같이 make 파일을 만들었습니다.

SCIPDIR=$/Users/amin/Documents/cProgram/scipoptsuite-6.0.2/scip

include $(SCIPDIR)/make/make.project

%.o: %.c
    $(CC) $(FLAGS) $(OFLAGS) $(BINOFLAGS) $(CFLAGS) -c $<

all: cmain

cmain: cmain.o
    $(LINKCXX) cmain.o $(LINKCXXSCIPALL) $(LDFLAGS) $(LINKCXX_o) cmain

내 cmain.c 파일은 다음과 같습니다.

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/*                                                                           */
/*                  This file is part of the program and library             */
/*         SCIP --- Solving Constraint Integer Programs                      */
/*                                                                           */
/*    Copyright (C) 2002-2019 Konrad-Zuse-Zentrum                            */
/*                            fuer Informationstechnik Berlin                */
/*                                                                           */
/*  SCIP is distributed under the terms of the ZIB Academic License.         */
/*                                                                           */
/*  You should have received a copy of the ZIB Academic License              */
/*  along with SCIP; see the file COPYING. If not visit scip.zib.de.         */
/*                                                                           */
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */

/**@file   GMI/src/cmain.c
 * @brief  main file for GMI cut example
 * @author Marc Pfetsch
 */

/*--+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/

#include <scip/scip.h>
#include <scip/scipdefplugins.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) )
      {
         SCIPinfoMessage(scip, NULL, "reading parameter file <%s> ...\n", filename);
         SCIP_CALL( SCIPreadParams(scip, filename) );
      }
      else
         SCIPinfoMessage(scip, NULL, "parameter file <%s> not found - using default parameters.\n", filename);
   }
   else if ( SCIPfileExists("scipgmi.set") )
   {
      SCIPinfoMessage(scip, NULL, "reading parameter file <scipgmi.set> ...\n");
      SCIP_CALL( SCIPreadParams(scip, "scipgmi.set") );
   }

   return SCIP_OKAY;
}

/** starts SCIP */
static
SCIP_RETCODE fromCommandLine(
   SCIP*                 scip,               /**< SCIP data structure */
   const char*           filename            /**< input file name */
   )
{
   /********************
    * Problem Creation *
    ********************/

   SCIPinfoMessage(scip, NULL, "read problem <%s> ...\n\n", filename);
   SCIP_CALL( SCIPreadProb(scip, filename, NULL) );

   /*******************
    * Problem Solving *
    *******************/

   /* solve problem */
   SCIPinfoMessage(scip, NULL, "solve problem ...\n\n");
   SCIP_CALL( SCIPsolve(scip) );

   SCIPinfoMessage(scip, NULL, "primal solution:\n");
   SCIP_CALL( SCIPprintBestSol(scip, NULL, FALSE) );

   /**************
    * Statistics *
    **************/

   SCIPinfoMessage(scip, NULL, "Statistics:\n");
   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) );

   /* we explicitly enable the use of a debug solution for this main SCIP instance */
   SCIPenableDebugSol(scip);

   /***********************
    * Version information *
    ***********************/

   SCIPprintVersion(scip, NULL);
   SCIPinfoMessage(scip, NULL, "\n");

   /* include default SCIP plugins */
   SCIP_CALL( SCIPincludeDefaultPlugins(scip) );

   /**************
    * Parameters *
    **************/

   if ( argc >= 3 )
   {
      SCIP_CALL( readParams(scip, argv[2]) );
   }
   else
   {
      SCIP_CALL( readParams(scip, NULL) );
   }

   /**************
    * Start SCIP *
    **************/

   if ( argc >= 2 )
   {
      SCIP_CALL( fromCommandLine(scip, argv[1]) );
   }
   else
   {
      SCIPinfoMessage(scip, NULL, "\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;

   retcode = runSCIP(argc, argv);
   if ( retcode != SCIP_OKAY )
   {
      SCIPprintError(retcode);
      return -1;
   }

   return 0;
}

이제이 2 파일이있는 디렉토리에서 Make를 실행했지만 작동하지 않으면 오류가 발생합니다. No such file or directory

make: *** No rule to make target `Users/amin/Documents/cProgram/scipoptsuite-6.0.2/scip/make/make.project'.  Stop.

누군가가 제안한 지시를 따르려고했습니다. 가능하다면 저를 도와주세요. 내가 무엇을해야합니까?

UpAndAdam

당신은 이것에 대해 잘못 가고 있습니다.

먼저 타겟이없는 첫 번째 레시피는 호출 된 레시피이므로 all타겟이 먼저 가야합니다.

둘째 : include다른 파일을 사용 하지 말고 디렉토리 변수와 all대상을 제외한 거의 모든 것을 삭제하십시오.

LD_FLAGS 변수에 추가하기 만하면 자동 규칙이 연결됩니다. scip 프로젝트가 필요한 변수를 가져 오지 않는 한 여기에 make 파일 정보를 포함해야하는 이유를 모르겠습니다.

또한 변수에로드 한 현재 경로에 잘못된 선행 $기호가 할당되어 있으며이를 연결하려면 libscip.so (또는 libscip.a)에 대한 전체 경로를 확인해야합니다.

LD_FLAGS+=-L${DIR_containing_libscip.so} -lscip

헤더 / 포함 파일을 가리켜 야 할 수도 있습니다.

CPP_FLAGS+=-I${DIR_before_includes_of_scip}/include( <scip/foo>. 로 포함 되거나없이 포함되는 경우 및 그대로 포함되는 /include경우에는 더 올라갑니다 <foo>. 이것은 프로젝트 스타일에 따라 다릅니다. 대부분의 프로젝트 /include/projname는 프로젝트를 포함하기 위해 자체 네임 스페이스에 효과적으로 유지하기 위해 패턴을 사용합니다. 충돌을 피하기 위해 파일.

그것은 다른 모든 것이 만들어지고 제자리에 있고 scip내가 알아야 할 특별히 특별한 것이 없다고 가정 해야합니다 ...

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Android 전화를 연결하기 위해 Ubuntu에서 핫스팟을 만드는 방법은 무엇입니까?

분류에서Dev

-Og를 사용하여 디버그 빌드를 위해 meson을 구성하는 방법은 무엇입니까?

분류에서Dev

마지막에만 결과를 얻기 위해 메서드를 연결하는 방법은 무엇입니까?

분류에서Dev

지불을 위해 은행 계좌를 내 웹 사이트에 연결하는 방법은 무엇입니까?

분류에서Dev

도커 이미지를 빌드하고 GitHub 작업에서 다음 작업을위한 컨테이너로 사용하는 방법은 무엇입니까?

분류에서Dev

Julia에서`include`를 해결하기 위해 특정 경로를 사용하도록`eval`을 만드는 방법은 무엇입니까?

분류에서Dev

다른 테이블에서 값을 가져오고 count 함수를 사용하기 위해 SQL 코드를 작성하는 방법은 무엇입니까?

분류에서Dev

Postgres C / C ++ 확장을 빌드하기 위해 Makefile에서 CPPFLAGS 및 CFLAGS를 선택하도록 pg_config / pgxs / make를 구성하는 방법은 무엇입니까?

분류에서Dev

redis 클러스터에 연결하기 위해 sails 앱을 설정하는 방법은 무엇입니까?

분류에서Dev

Azure Postgresql에 연결하기 위해 프록시를 추가하는 방법은 무엇입니까?

분류에서Dev

기존에 설치된 OS를 사용하기 위해 KVM을 설치하는 방법은 무엇입니까?

분류에서Dev

기존에 설치된 OS를 사용하기 위해 KVM을 설치하는 방법은 무엇입니까?

분류에서Dev

Linux 클러스터에서 C ++에서 사용하기 위해 BLAS 및 LAPACK을 빌드하는 방법은 무엇입니까?

분류에서Dev

Bluetooth를 통해 MacBook을 Pulseaudio에 연결하는 방법은 무엇입니까?

분류에서Dev

SCIP를 사용하여 SAT 문제를 해결하는 방법은 무엇입니까?

분류에서Dev

평균을 계산하기 위해 배열에서 재귀를 사용하는 방법은 무엇입니까?

분류에서Dev

Ruby 명령 줄에서 URL을 전달하기 위해 argv를 사용하는 방법은 무엇입니까?

분류에서Dev

PHP에서 URL 재 작성을 위해 htaccess 코드를 사용하는 방법은 무엇입니까?

분류에서Dev

phpMailer를 사용하여 PHP에서 이메일을 보내려고 할 때 SMTP 연결 오류를 해결하는 방법은 무엇입니까? POP / IMAP

분류에서Dev

불필요하게 쿼리를 중지하기 위해 Rails에 연결을 자동으로 포함하는 방법은 무엇입니까?

분류에서Dev

포트로 IP 주소를 얻기 위해 목록을 연결하는 방법은 무엇입니까?

분류에서Dev

화살표를 사용하고 자동 완성 옵션에서 옵션을 선택하기 위해 입력하는 방법은 무엇입니까?

분류에서Dev

이 for 루프를 대체하기 위해 std 알고리즘을 사용하는 방법은 무엇입니까?

분류에서Dev

joohny five를 사용하기 위해 html의 버튼에서 사용하기 위해 nodejs의 기능을 사용하는 방법은 무엇입니까?

분류에서Dev

빌드 결과 파일을로드하기 위해 vim quickFix 창을 만드는 방법은 무엇입니까?

분류에서Dev

빠른 재로드를 위해 atlassian 플러그인을 빌드하는 방법은 무엇입니까?

분류에서Dev

방금 C ++를 사용하여 연결된 목록에 대해 배우기 시작했습니다. 벡터를 사용하여 연결 목록을 만들려고합니다. 이 코드에 문제가있는 이유는 무엇입니까?

분류에서Dev

vim에서 makefile 및 ./a.out을 저장하고 실행하기 위해 핫키를 설정하는 방법은 무엇입니까?

분류에서Dev

Google App Engine의 Node.js child_process에서 Python3을 실행하기 위해 Docker를 빌드하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    Android 전화를 연결하기 위해 Ubuntu에서 핫스팟을 만드는 방법은 무엇입니까?

  2. 2

    -Og를 사용하여 디버그 빌드를 위해 meson을 구성하는 방법은 무엇입니까?

  3. 3

    마지막에만 결과를 얻기 위해 메서드를 연결하는 방법은 무엇입니까?

  4. 4

    지불을 위해 은행 계좌를 내 웹 사이트에 연결하는 방법은 무엇입니까?

  5. 5

    도커 이미지를 빌드하고 GitHub 작업에서 다음 작업을위한 컨테이너로 사용하는 방법은 무엇입니까?

  6. 6

    Julia에서`include`를 해결하기 위해 특정 경로를 사용하도록`eval`을 만드는 방법은 무엇입니까?

  7. 7

    다른 테이블에서 값을 가져오고 count 함수를 사용하기 위해 SQL 코드를 작성하는 방법은 무엇입니까?

  8. 8

    Postgres C / C ++ 확장을 빌드하기 위해 Makefile에서 CPPFLAGS 및 CFLAGS를 선택하도록 pg_config / pgxs / make를 구성하는 방법은 무엇입니까?

  9. 9

    redis 클러스터에 연결하기 위해 sails 앱을 설정하는 방법은 무엇입니까?

  10. 10

    Azure Postgresql에 연결하기 위해 프록시를 추가하는 방법은 무엇입니까?

  11. 11

    기존에 설치된 OS를 사용하기 위해 KVM을 설치하는 방법은 무엇입니까?

  12. 12

    기존에 설치된 OS를 사용하기 위해 KVM을 설치하는 방법은 무엇입니까?

  13. 13

    Linux 클러스터에서 C ++에서 사용하기 위해 BLAS 및 LAPACK을 빌드하는 방법은 무엇입니까?

  14. 14

    Bluetooth를 통해 MacBook을 Pulseaudio에 연결하는 방법은 무엇입니까?

  15. 15

    SCIP를 사용하여 SAT 문제를 해결하는 방법은 무엇입니까?

  16. 16

    평균을 계산하기 위해 배열에서 재귀를 사용하는 방법은 무엇입니까?

  17. 17

    Ruby 명령 줄에서 URL을 전달하기 위해 argv를 사용하는 방법은 무엇입니까?

  18. 18

    PHP에서 URL 재 작성을 위해 htaccess 코드를 사용하는 방법은 무엇입니까?

  19. 19

    phpMailer를 사용하여 PHP에서 이메일을 보내려고 할 때 SMTP 연결 오류를 해결하는 방법은 무엇입니까? POP / IMAP

  20. 20

    불필요하게 쿼리를 중지하기 위해 Rails에 연결을 자동으로 포함하는 방법은 무엇입니까?

  21. 21

    포트로 IP 주소를 얻기 위해 목록을 연결하는 방법은 무엇입니까?

  22. 22

    화살표를 사용하고 자동 완성 옵션에서 옵션을 선택하기 위해 입력하는 방법은 무엇입니까?

  23. 23

    이 for 루프를 대체하기 위해 std 알고리즘을 사용하는 방법은 무엇입니까?

  24. 24

    joohny five를 사용하기 위해 html의 버튼에서 사용하기 위해 nodejs의 기능을 사용하는 방법은 무엇입니까?

  25. 25

    빌드 결과 파일을로드하기 위해 vim quickFix 창을 만드는 방법은 무엇입니까?

  26. 26

    빠른 재로드를 위해 atlassian 플러그인을 빌드하는 방법은 무엇입니까?

  27. 27

    방금 C ++를 사용하여 연결된 목록에 대해 배우기 시작했습니다. 벡터를 사용하여 연결 목록을 만들려고합니다. 이 코드에 문제가있는 이유는 무엇입니까?

  28. 28

    vim에서 makefile 및 ./a.out을 저장하고 실행하기 위해 핫키를 설정하는 방법은 무엇입니까?

  29. 29

    Google App Engine의 Node.js child_process에서 Python3을 실행하기 위해 Docker를 빌드하는 방법은 무엇입니까?

뜨겁다태그

보관