2014-04-22 2 views
1

나는 std.net.curl을 사용하고 있으므로 libcurl에 링크해야합니다.말림과 pragma 문제

-L-lcurl을 추가하면됩니다.

그러나 std.net.curl을 가져 오는 파일의 맨 위에 pragma(lib,"curl");을 추가하면 모든 종류의 연결 오류 (누락 된 참조)가 표시됩니다.

왜 그럴까요? 내가 뭐 잘못하고 있니? 아니 그렇게 큰 문제


정말,하지만 난 링크의 pragma 방법을 선호 할 수 있기 때문에, 실제로는 예를 들어, 근무 왜 궁금 sqlite3이지만 Curl에는 해당되지 않습니다.

답변

3

pragma(lib)은 모든 모듈을 모두 명령 줄에 나열하여 함께 컴파일하면 가장 잘 작동합니다. 컴파일러에 대한 별도의 호출로 컴파일하면 라이브러리 참조가 손실 될 수 있습니다 (Windows에서만 dmd 예외).

모든 것을 함께 컴파일 하시겠습니까?

+0

흠 ... 당신은 옳은 것 같습니다. 아니, 함께 모든 것을 컴파일하지는 않아. –

+1

예, 대부분의 경우에 pragma (lib)가 작동하려면 모든 것을 함께 컴파일해야합니다. D를 컴파일하는 가장 좋은 방법은 대개 더 빠르며 모듈 가져 오기 경로의 문제도 방지합니다. –