2016-08-05 2 views
0

all.Windows 10 및 Visual C++ 2010에서 Ipopt-3.9.3을 컴파일하려고했을 때 "치명적인 오류 LNK1120"을 어떻게 처리해야합니까?

저는 Windows 10에서 Ipopt-3.9.3을 컴파일 중입니다. & Visual C++ 2010 Express.

나는 올바른 경로에 있지만, 일부 경고와 함께 libCoinBlas, libConHSL, libCoinLapack뿐만 아니라 libIpopt, 생성 된 libCoinBlas.lib, libCoinHSL.lib, libCoinLapack.lib뿐만 아니라 libIpopt.lib의 프로젝트를 구축했습니다.

IpoptAmplSolver 및 hs071_cpp 프로젝트를 빌드 할 때 다음 치명적인 오류가 있습니다.

5>  Generating Code... 
5>  Creating library Release\IpoptAmplSolver.lib and object Release\IpoptAmplSolver.exp 
5>dlarf.obj : error LNK2019: unresolved external symbol _iladlr_ referenced in function _dlarf_ 
5>dlarfb.obj : error LNK2001: unresolved external symbol _iladlr_ 
5>dlarf.obj : error LNK2019: unresolved external symbol _iladlc_ referenced in function _dlarf_ 
5>dlarfb.obj : error LNK2001: unresolved external symbol _iladlc_ 
5>dlascl.obj : error LNK2019: unresolved external symbol _disnan_ referenced in function _dlascl_ 
5>dpotf2.obj : error LNK2001: unresolved external symbol _disnan_ 
5>Release\IpoptAmplSolver.exe : fatal error LNK1120: 3 unresolved externals 
========== Rebuild All: 4 succeeded, 1 failed, 0 skipped ========== 


5>------ Rebuild All started: Project: hs071_cpp, Configuration: Release Win32 ------ 
5>  hs071_main.cpp 
5>  hs071_nlp.cpp 
5>  Generating Code... 
5>dlarf.obj : error LNK2019: unresolved external symbol _iladlr_ referenced in function _dlarf_ 
5>dlarfb.obj : error LNK2001: unresolved external symbol _iladlr_ 
5>dlarf.obj : error LNK2019: unresolved external symbol _iladlc_ referenced in function _dlarf_ 
5>dlarfb.obj : error LNK2001: unresolved external symbol _iladlc_ 
5>dlascl.obj : error LNK2019: unresolved external symbol _disnan_ referenced in function _dlascl_ 
5>dpotf2.obj : error LNK2001: unresolved external symbol _disnan_ 
5>LIBCMT.lib(wincrt0.obj) : error LNK2019: unresolved external symbol _W[email protected] referenced in function ___tmainCRTStartup 
5>Release\hs071_cpp.exe : fatal error LNK1120: 4 unresolved externals 
========== Rebuild All: 4 succeeded, 1 failed, 0 skipped ========== 

내가 어떻게 처리해야하는지 알려주는 사람이 있습니까?

관심을 가져 주셔서 감사 드리며 친절한 도움을 기다리고 있습니다.

마지막으로, 정의되지 않은 함수로 인한이 문제를 해결했습니다. 필자는 필자의 사례가 특정 절차 코드가 아닌 발표 된 소프트웨어 패키지에 관한 것이라고 생각한다. 따라서 약간 다르고 상대적으로 간단하다.

오류는 링커가 어떤 함수 호출에 대한 코드를 누락되었음을 알려줍니다 : 사용중인 라이브러리의 특성을 모른 채

+1

[정의되지 않은 참조/확인되지 않은 외부 기호 오류 란 무엇이며 어떻게 해결할 수 있습니까?] (http://stackoverflow.com/questions/12573816/what-is-an-undefined-reference-unresolved- 외부 기호 오류 및 방법 어떻게해야합니까?) – sashoalm

+0

@sashoalm 안녕하십니까. 친절하게 도와 주셔서 감사 드리며 추천 한 게시물은 절대적인 초보자에게 도움이됩니다. 내 문제는 정의되지 않은 함수로 인해 발생하지만 내 사례는 특정 절차 코드가 아니라 발표 된 소프트웨어 패키지에 관한 것인데, 따라서 약간 다르고 비교적 간단합니다. –

+0

그것이 "가능하다"고하는 이유입니다. – sashoalm

답변

0

, 나는 당신이이 오류를 처리하려면 다음을 시도하는 것이 좋습니다. 이것은 아마도 라이브러리 파일을 찾을 수 없다는 것을 의미합니다. 링커가 필요한 모든 lib 파일을 찾을 수 있는지 확인하십시오. property pages을 확인하십시오. Linker->General->Additional library directories에서 lib-files이있는 디렉토리가 있고 Linker->Input->Additional dependencies 아래에 있는지 확인하고 lib 파일이 나열되어 있는지 확인하십시오. 또한 다른 구성에 대한 매개 변수가 있는지 확인하십시오.

여전히 도움이되지 않으면 라이브러리가 다른 라이브러리에 의존하는지 확인하십시오. 이는 사용중인 라이브러리의 문서에 언급되어야합니다.

0

저는 이것을 작성하지 않았지만, 처음부터 시도해 보았습니다. 당신이 말한 바로는 링크 된 .lib 파일을 컴파일했고 링크하는 동안 실패했습니다. 그래서 여기

당신은 하나 링커에 대한 입력 목록에서 lib 디렉토리 파일을 놓친

1) ... 옵션입니다.

2) 실제 .LIB 파일은 링커 요구 (당신은 lib 디렉토리 파일의 기호)

3) 귀하의 lib 디렉토리 파일을 컴파일를 덤프하여이를 확인할 수 있습니다 기호를 포함하지 않는 중 잘못된 유형 즉, 잘못된 유형으로 링크하는 것보다 잘못된 플랫폼. 릴리스/디버그.

4) C가 아닌 C++ 또는 비자로 컴파일되므로 라이브러리의 심볼이 장식되어 있습니다.

위의 단계를 거치면 문제를 쉽게 찾을 수 있지만 질문에 올바르게 답변 할 수있는 충분한 정보를 제공하지 못했습니다. 개인적으로, 나는 C++로 C를 컴파일하고 있거나 lib 파일 중 하나에 대해 잘못된 플랫폼 유형을 설정했다고 생각합니다.

0

내게 영감을 준 환자와 자세한 조언을 해주셔서 감사 드리며, 마침내 필자는 필요한 기능을 정의하는 C 파일을 프로젝트에 추가해야한다는 것을 알게되었습니다. 상세한 솔루션은 다음과 같습니다. 비주얼 Stuido 명령 프롬프트에서

f2c iladlr.f 

을 실행하고 iladlr.c을 생성합니다

예를 들어, 나는

5>dlarf.obj : error LNK2019: unresolved external symbol _iladlr_ referenced in function _dlarf_ 
5>dlarfb.obj : error LNK2001: unresolved external symbol _iladlr_ 

1 단계 제거합니다.

2 단계 : iladlr.c를 프로젝트에 추가하십시오.

3 단계 : 다시 작성하십시오.

마지막으로 모든 것이 잘됩니다.

관련 문제