Hello, I'm trying to compile Velvet on Mac OSX however I get the following error message:
rm obj/*.o obj/dbg/*.o
rm: obj/dbg/*.o: No such file or directory
make: [cleanobj] Error 1 (ignored)
mkdir -p obj
gcc -Wall -m64 -O3 -D MAXKMERLENGTH=31 -D CATEGORIES=2 -c src/tightString.c -o obj/tightString.o
gcc -Wall -m64 -O3 -D MAXKMERLENGTH=31 -D CATEGORIES=2 -c src/run.c -o obj/run.o
gcc -Wall -m64 -O3 -D MAXKMERLENGTH=31 -D CATEGORIES=2 -c src/splay.c -o obj/splay.o
gcc -Wall -m64 -O3 -D MAXKMERLENGTH=31 -D CATEGORIES=2 -c src/splayTable.c -o obj/splayTable.o
gcc -Wall -m64 -O3 -D MAXKMERLENGTH=31 -D CATEGORIES=2 -c src/graph.c -o obj/graph.o
gcc -Wall -m64 -O3 -D MAXKMERLENGTH=31 -D CATEGORIES=2 -c src/run2.c -o obj/run2.o
gcc -Wall -m64 -O3 -D MAXKMERLENGTH=31 -D CATEGORIES=2 -c src/fibHeap.c -o obj/fibHeap.o
gcc -Wall -m64 -O3 -D MAXKMERLENGTH=31 -D CATEGORIES=2 -c src/fib.c -o obj/fib.o
gcc -Wall -m64 -O3 -D MAXKMERLENGTH=31 -D CATEGORIES=2 -c src/concatenatedGraph.c -o obj/concatenatedGraph.o
gcc -Wall -m64 -O3 -D MAXKMERLENGTH=31 -D CATEGORIES=2 -c src/passageMarker.c -o obj/passageMarker.o
gcc -Wall -m64 -O3 -D MAXKMERLENGTH=31 -D CATEGORIES=2 -c src/graphStats.c -o obj/graphStats.o
src/graphStats.c:1961:69: warning: format specifies type 'long' but the argument
has type 'long long' [-Wformat]
..."PLACEHLDR.%ld PLACEHOLDER000", (int64_t) refIndex + 1);
~~~ ^~~~~~~~~~~~~~~~~~~~~~
%lld
/usr/include/secure/_stdio.h:49:56: note: expanded from macro 'sprintf'
__builtin___sprintf_chk (str, 0, __darwin_obsz(str), __VA_ARGS__)
^
1 warning generated.
gcc -Wall -m64 -O3 -D MAXKMERLENGTH=31 -D CATEGORIES=2 -c src/correctedGraph.c -o obj/correctedGraph.o
gcc -Wall -m64 -O3 -D MAXKMERLENGTH=31 -D CATEGORIES=2 -c src/dfib.c -o obj/dfib.o
gcc -Wall -m64 -O3 -D MAXKMERLENGTH=31 -D CATEGORIES=2 -c src/dfibHeap.c -o obj/dfibHeap.o
gcc -Wall -m64 -O3 -D MAXKMERLENGTH=31 -D CATEGORIES=2 -c src/recycleBin.c -o obj/recycleBin.o
gcc -Wall -m64 -O3 -D MAXKMERLENGTH=31 -D CATEGORIES=2 -c src/readSet.c -o obj/readSet.o
gcc -Wall -m64 -O3 -D MAXKMERLENGTH=31 -D CATEGORIES=2 -c src/binarySequences.c -o obj/binarySequences.o
src/binarySequences.c:304:69: warning: format specifies type 'unsigned long' but
the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat]
...location 0x%lx for seq %ld beyond end 0x%lx\n", (uint64_t) tmp, (uint64_...
~~~ ^~~~~~~~~~~~~~
%llx
src/binarySequences.c:304:85: warning: format specifies type 'long' but the
argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat]
...seq %ld beyond end 0x%lx\n", (uint64_t) tmp, (uint64_t) sequenceIndex, (...
~~~ ^~~~~~~~~~~~~~~~~~~~~~~~
%llu
src/binarySequences.c:304:111: warning: format specifies type 'unsigned long'
but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat]
...0x%lx\n", (uint64_t) tmp, (uint64_t) sequenceIndex, (uint64_t) arrayEnd);
~~~ ^~~~~~~~~~~~~~~~~~~
%llx
src/binarySequences.c:389:45: warning: format specifies type 'long' but the
argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat]
velvetLog("CnySeq bufIdx %ld too large\n", bufIdx);
~~~ ^~~~~~
%llu
4 warnings generated.
gcc -Wall -m64 -O3 -D MAXKMERLENGTH=31 -D CATEGORIES=2 -c src/shortReadPairs.c -o obj/shortReadPairs.o
gcc -Wall -m64 -O3 -D MAXKMERLENGTH=31 -D CATEGORIES=2 -c src/locallyCorrectedGraph.c -o obj/locallyCorrectedGraph.o
gcc -Wall -m64 -O3 -D MAXKMERLENGTH=31 -D CATEGORIES=2 -c src/graphReConstruction.c -o obj/graphReConstruction.o
src/graphReConstruction.c:1407:65: warning: format specifies type 'long' but the
argument has type '__darwin_suseconds_t' (aka 'int') [-Wformat]
...=== Ghost-Threaded in %ld.%06ld s\n", diff.tv_sec, diff.tv_usec);
~~~~~ ^~~~~~~~~~~~
%06d
src/graphReConstruction.c:1436:59: warning: format specifies type 'long' but the
argument has type '__darwin_suseconds_t' (aka 'int') [-Wformat]
velvetLog(" === Threaded in %ld.%06ld s\n", diff.tv_sec, diff.tv_usec);
~~~~~ ^~~~~~~~~~~~
%06d
2 warnings generated.
gcc -Wall -m64 -O3 -D MAXKMERLENGTH=31 -D CATEGORIES=2 -c src/roadMap.c -o obj/roadMap.o
gcc -Wall -m64 -O3 -D MAXKMERLENGTH=31 -D CATEGORIES=2 -c src/preGraph.c -o obj/preGraph.o
gcc -Wall -m64 -O3 -D MAXKMERLENGTH=31 -D CATEGORIES=2 -c src/preGraphConstruction.c -o obj/preGraphConstruction.o
src/preGraphConstruction.c:525:58: warning: format specifies type 'long' but the
argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat]
...velvetLog("readIndex %ld beyond string len %ld\n", (uint64_t) readIndex...
~~~ ^~~~~~~~~~~~~~~~~~~~
%llu
src/preGraphConstruction.c:525:80: warning: format specifies type 'long' but the
argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat]
...string len %ld\n", (uint64_t) readIndex, (uint64_t) tString->length);
~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~
%llu
2 warnings generated.
gcc -Wall -m64 -O3 -D MAXKMERLENGTH=31 -D CATEGORIES=2 -c src/concatenatedPreGraph.c -o obj/concatenatedPreGraph.o
gcc -Wall -m64 -O3 -D MAXKMERLENGTH=31 -D CATEGORIES=2 -c src/readCoherentGraph.c -o obj/readCoherentGraph.o
gcc -Wall -m64 -O3 -D MAXKMERLENGTH=31 -D CATEGORIES=2 -c src/utility.c -o obj/utility.o
gcc -Wall -m64 -O3 -D MAXKMERLENGTH=31 -D CATEGORIES=2 -c src/kmer.c -o obj/kmer.o
gcc -Wall -m64 -O3 -D MAXKMERLENGTH=31 -D CATEGORIES=2 -c src/scaffold.c -o obj/scaffold.o
gcc -Wall -m64 -O3 -D MAXKMERLENGTH=31 -D CATEGORIES=2 -c src/kmerOccurenceTable.c -o obj/kmerOccurenceTable.o
gcc -Wall -m64 -O3 -D MAXKMERLENGTH=31 -D CATEGORIES=2 -c src/allocArray.c -o obj/allocArray.o
gcc -Wall -m64 -O3 -D MAXKMERLENGTH=31 -D CATEGORIES=2 -c src/autoOpen.c -o obj/autoOpen.o
src/autoOpen.c:56:19: warning: duplicate 'const' declaration specifier
[-Wduplicate-decl-specifier]
static const char const* decompressors[] = {"","pigz", "gunzip", "pbunzi...
^
1 warning generated.
gcc -Wall -m64 -O3 -o velveth obj/tightString.o obj/run.o obj/recycleBin.o obj/splay.o obj/splayTable.o obj/readSet.o obj/binarySequences.o obj/utility.o obj/kmer.o obj/kmerOccurenceTable.o obj/autoOpen.o -lz -lm
Undefined symbols for architecture x86_64:
"_isCreateBinary", referenced from:
_main in run.o
_inputSequenceArrayIntoSplayTableAndArchive in splayTable.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [velveth] Error 1
To overcome this issue I have searched Biostar and tried the following advice :
- Uncommenting the following line in the Makefile
'CFLAGS = -Wall -m64'
- Running the make command with
'BUNDLEDZLIB=1'
- Ensuring gcc is installed via Xcode and Command Line Developer Tools
Sorry if I'm missing anything which might be glaringly obvious to some, thanks for the help!
James
I made the changes you suggested but much of the same warning messages still occur, with the final warning different from the one posted above:
Plenty of warnings remain, but they are relatively unimportant. The
Undefined symbols for architecture x86_64
linker errors that were preventing you from getting a working executable are now fixed.Oh I see, thanks for the help!