2013-05-31 2 views
0

나는 C++ 공유 라이브러리를 생성하고 PHP에서 호출 된 C++ 콘솔 응용 프로그램과 통합했습니다. 내 창문에서 이것을 시도하고 완벽하게 작동합니다. 이제 리눅스 웹 서버로 옮겨야합니다. 나는 그것을 다시 실행하기 위해 리눅스에서 C++ 콘솔 응용 프로그램을 컴파일해야하고 C++ 공유 라이브러리도 생성 할 수 있음을 알고 있습니다. 나는 리눅스 운영체제에 익숙하지 않다. 어떻게 모든 추가 라이브러리를 할당하는 리눅스 서버에서 C++ 콘솔 애플리케이션을 컴파일하고, 파일을 포함하고, C++ 공유 라이브러리에서 생성 된 헤더 파일을 Visual Studio 에서처럼 만들 수 있는가? 이것에 관한 어떤 링크든지 높게 평가 될 것이다. 공유 라이브러리가 matlab에서 왔기 때문에 나는 또한 C++ 콘솔 어플리케이션을 컴파일하면서 matlab include 파일과 라이브러리를 할당해야합니다.리눅스에서 C++ 콘솔 응용 프로그램 컴파일하기

+1

가지고있는 파일의 다이어그램을 그리거나 메이크 파일 또는 다른 것을 표시 할 수 있습니까? 나는이 질문에 대한 답을 얻을 수 있다고 확신하지만, 세부 사항없이 "필요한 디렉토리가 아닌 디렉토리를 포함하라"를 사용합니다. –

+0

matlab에 관해서는 Windows dll을 리눅스에서 사용할 수 없다는 것을 알아 두십시오. .lib 및 .dll보다 리눅스에서 동일한 역할을하는 .a (정적 라이브러리) 또는 .so (동적 라이브러리)를 사용해야합니다. –

답변

1

당신은 matlab에 리눅스를 설치하고 리눅스에서 작업하는 것 (그리고 약간의 테스트 & 디버깅)과 관련하여 matlab에서 만든 라이브러리 port을 얻어야한다고 생각합니다.

당신의 LIB 준비, 포트 콘솔 응용 프로그램은 또한 경우 (디버깅 등 모든.), 다음 터미널을 엽니 다 - 콘솔 응용 프로그램의 소스가 여러 파일에 걸쳐있는 경우

gcc -Wall console_app.c /path/to/your/libFromMatlab.a -o console_app 

, 당신은 고려할 수 있습니다 code::blocks과 같은 IDE를 사용하거나 makefile을 사용하여 작업을 간소화하십시오.

"libFromMatlab.so"(위의 .so 대 .a 위) 위치를 라이브러리 경로에 추가하거나 다른 위치에 복사하십시오. 그러면 console_app에 실행 가능 플래그가 설정되어 있는지 확인하십시오.

NB : 크로스 컴파일없이 대상 플랫폼 이외의 플랫폼에서 개발하는 것은 러시아어 룰렛을 재생하는 것과 동일합니다 ... 단지 덜 치명적입니다.

----- 편집 ------
는 또한 this article을 가로 질러 와서 섹션 4는 어떤 가치가있을 수있다 생각했다.

관련 문제