我寫了一個小c文件來測試DRMAA,但它一直告訴我我沒有定義我使用的DRMAA函數。我在C代碼中包含了drmaa.h文件。當我使用-idrmaa我得到這個錯誤:DRMAA-編譯c文件時Cant'鏈接drmaa庫
[[email protected] ~]$ cc -o drmtest -I$SGE_ROOT/include/ -ldrmaa -ldl drmtest.c
/usr/bin/ld: cannot find -ldrmaa
的DRMAA頭文件是在這個路徑:$ SGE_ROOT /包括/
如果我編譯文件,而不-ldrmaa我得到這個錯誤:
[[email protected] ~]$ cc -o drmtest -I$SGE_ROOT/include/ drmtest.c
/tmp/cclsPr9O.o: In function `main':
drmtest.c:(.text+0x3c): undefined reference to `drmaa_init'
drmtest.c:(.text+0x83): undefined reference to `drmaa_exit'
collect2: ld returned 1 exit status
我正在使用我學校的UNIX系統,我對它很陌生。誰能幫我這個?
這是我drmtest.c文件:
#include <stdio.h>
#include "drmaa.h"
int main (int argc, char **argv) {
char error[DRMAA_ERROR_STRING_BUFFER];
int errnum = 0;
errnum = drmaa_init (argv[0], error, DRMAA_ERROR_STRING_BUFFER);
if (errnum != DRMAA_ERRNO_SUCCESS) {
fprintf (stderr, "Couldn't init DRMAA library: %s\n", error);
return 1; }
/* Do Stuff */
errnum = drmaa_exit (error, DRMAA_ERROR_STRING_BUFFER);
if (errnum != DRMAA_ERRNO_SUCCESS) {
fprintf (stderr, "Couldn't exit DRMAA library: %s\n", error);
return 1; }
return 0;
}
感謝您的幫助,我找到的路徑,並獲得對文件進行編譯,但我得到這個錯誤: [mkatouzi @ ARGO-1〜] $ ./drmtest ./drmtest:錯誤而載入共享庫:libdrmaa.so.1。0:無法打開共享目標文件:沒有這樣的文件或目錄 [mkatouzi @ argo-1〜] $ – mkatouzi 2014-10-03 14:36:26
更新瞭解決該問題的答案。 – isedev 2014-10-03 14:41:12