2
premakeを使用してメインプログラムと外部ライブラリリンクを取得できません。たとえば、私は、この例に問題を単純化してきました:Premakeで外部ライブラリにリンクする
./_external/ext.cpp
#include "ext.h"
int foo()
{
return 4;
}
./main.cpp
#pragma once
int foo();
./_external/ext.h
#include "stdio.h"
#include "_external/ext.h"
int main()
{
printf("%d", foo());
return 0;
}
./premake4.lua
solution "Test"
configurations { "Release", "Debug" }
project "TestMain"
language "C++"
kind "ConsoleApp"
files "main.cpp"
links
{
"_external/libfoo.a"
}
私はCygwin環境下で、GNU makeファイルを作成:
$ ./premake4.exe gmake
Building configurations...
Running action 'gmake'...
Generating Makefile...
Generating TestMain.make...
Done.
をし、私が作るとき、私は次のエラーを取得する:
$ make
==== Building TestMain (release) ====
Linking TestMain
/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/bin/ld: cannot find -lD:/test/_external/libfoo.a
collect2: ld returned 1 exit status
TestMain.make:93: recipe for target `TestMain.exe' failed
make[1]: *** [TestMain.exe] Error 1
Makefile:16: recipe for target `TestMain' failed
make: *** [TestMain] Error 2
私が見つけた唯一の回避策は "linkoptions" を使用することです"links"の代わりに "-l"を削除しますが、私にとってはソリューションよりもハックのようです。
公式サイトhttp://industriousone.com/linkoptionsには、linkoptionsを使用して外部ライブラリをリンクする例があります。そのように見えるのが答えです。ソリューションを回答として追加すると、他の人にとって有益です。 – Ismael